aboutsummaryrefslogtreecommitdiffstats
path: root/build/release/dist.js
diff options
context:
space:
mode:
authorTimmy Willison <timmywillisn@gmail.com>2015-01-28 11:37:29 -0800
committerTimmy Willison <timmywillisn@gmail.com>2015-01-29 12:03:40 -0800
commit26eca143c2dd857b9e3d1c446a467fed16e903d2 (patch)
tree49b5cfb4478a5678375fb29acad66551d0b119aa /build/release/dist.js
parent087d280ad1160de53a45ea96184911194f7b46e0 (diff)
downloadjquery-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.js113
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);
+};