diff options
author | Timmy Willison <timmywillisn@gmail.com> | 2015-01-28 11:37:29 -0800 |
---|---|---|
committer | Timmy Willison <timmywillisn@gmail.com> | 2015-01-29 12:03:40 -0800 |
commit | 26eca143c2dd857b9e3d1c446a467fed16e903d2 (patch) | |
tree | 49b5cfb4478a5678375fb29acad66551d0b119aa /build/release/dist.js | |
parent | 087d280ad1160de53a45ea96184911194f7b46e0 (diff) | |
download | jquery-26eca143c2dd857b9e3d1c446a467fed16e903d2.tar.gz jquery-26eca143c2dd857b9e3d1c446a467fed16e903d2.zip |
Release: Distribute files to distribution repo
Fixes gh-1869
Fixes gh-1673
Fixes gh-2045
Diffstat (limited to 'build/release/dist.js')
-rw-r--r-- | build/release/dist.js | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/build/release/dist.js b/build/release/dist.js new file mode 100644 index 000000000..1ebeee0b9 --- /dev/null +++ b/build/release/dist.js @@ -0,0 +1,113 @@ +module.exports = function( Release, complete ) { + + var + fs = require( "fs" ), + shell = require( "shelljs" ), + pkg = require( Release.dir.repo + "/package.json" ), + // These files are included with the distrubtion + files = [ + "src", + "LICENSE.txt", + "AUTHORS.txt", + "package.json" + ]; + + /** + * Clone the distribution repo + */ + function clone() { + var distRemote = Release.remote.replace( "jquery", "jquery-dist" ); + + Release.chdir( Release.dir.base ); + Release.dir.dist = Release.dir.base + "/dist"; + + console.log( "Using distribution repo: ", distRemote ); + Release.exec( "git clone " + distRemote + " " + Release.dir.dist, + "Error cloning repo." ); + + // Distribution always works on master + Release.chdir( Release.dir.dist ); + Release.exec( "git checkout master", "Error checking out branch." ); + console.log(); + } + + /** + * Generate bower file for jquery-dist + */ + function generateBower() { + return JSON.stringify({ + name: pkg.name, + version: pkg.version, + main: pkg.main, + license: "MIT", + ignore: [ + "package.json" + ], + keywords: pkg.keywords + }, null, 2); + } + + /** + * Copy necessary files over to the dist repo + */ + function copy() { + + // Copy dist files + var distFolder = Release.dir.dist + "/dist"; + shell.mkdir( "-p", distFolder ); + [ + "dist/jquery.js", + "dist/jquery.min.js", + "dist/jquery.min.map" + ].forEach(function( file ) { + shell.cp( Release.dir.repo + "/" + file, distFolder ); + }); + + // Copy other files + files.forEach(function( file ) { + shell.cp( "-r", Release.dir.repo + "/" + file, Release.dir.dist ); + }); + + // Write generated bower file + fs.writeFileSync( Release.dir.dist + "/bower.json", generateBower() ); + + console.log( "Adding files to dist..." ); + Release.exec( "git add .", "Error adding files." ); + Release.exec( + "git commit -m 'Release " + Release.newVersion + "'", + "Error commiting files." + ); + console.log(); + + console.log( "Tagging release on dist..." ); + Release.exec( "git tag " + Release.newVersion, + "Error tagging " + Release.newVersion + " on dist repo." ); + Release.tagTime = Release.exec( "git log -1 --format='%ad'", + "Error getting tag timestamp." ).trim(); + } + + /** + * Push files to dist repo + */ + function push() { + Release.chdir( Release.dir.dist ); + + console.log( "Pushing release to dist repo..." ); + Release.exec( "git push origin master --tags", + "Error pushing master and tags to git repo." ); + + // Set repo for npm publish + Release.dir.origRepo = Release.dir.repo; + Release.dir.repo = Release.dir.dist; + } + + Release.walk([ + Release._section( "Copy files to distribution repo" ), + clone, + copy, + Release.confirmReview, + + Release._section( "Pushing files to distribution repo" ), + push + ], complete); +}; |