aboutsummaryrefslogtreecommitdiffstats
path: root/build/release.js
diff options
context:
space:
mode:
Diffstat (limited to 'build/release.js')
-rw-r--r--build/release.js163
1 files changed, 30 insertions, 133 deletions
diff --git a/build/release.js b/build/release.js
index 43be272ad..1b306b50c 100644
--- a/build/release.js
+++ b/build/release.js
@@ -1,113 +1,21 @@
+
module.exports = function( Release ) {
var
- fs = require( "fs" ),
- shell = require( "shelljs" ),
- ensureSizzle = require( "./ensure-sizzle" ),
-
- devFile = "dist/jquery.js",
- minFile = "dist/jquery.min.js",
- mapFile = "dist/jquery.min.map",
-
- cdnFolder = "dist/cdn",
-
- releaseFiles = {
- "jquery-VER.js": devFile,
- "jquery-VER.min.js": minFile,
- "jquery-VER.min.map": mapFile
- },
-
- googleFilesCDN = [
- "jquery.js", "jquery.min.js", "jquery.min.map"
- ],
-
- msFilesCDN = [
- "jquery-VER.js", "jquery-VER.min.js", "jquery-VER.min.map"
- ],
+ files = [ "dist/jquery.js", "dist/jquery.min.js", "dist/jquery.min.map" ],
+ cdn = require( "./release/cdn" ),
+ dist = require( "./release/dist" ),
+ ensureSizzle = require( "./release/ensure-sizzle" ),
- _complete = Release.complete;
+ npmTags = Release.npmTags;
- /**
- * Generates copies for the CDNs
- */
- function makeReleaseCopies() {
- shell.mkdir( "-p", cdnFolder );
-
- Object.keys( releaseFiles ).forEach(function( key ) {
- var text,
- builtFile = releaseFiles[ key ],
- unpathedFile = key.replace( /VER/g, Release.newVersion ),
- releaseFile = cdnFolder + "/" + unpathedFile;
-
- if ( /\.map$/.test( releaseFile ) ) {
- // Map files need to reference the new uncompressed name;
- // assume that all files reside in the same directory.
- // "file":"jquery.min.js","sources":["jquery.js"]
- text = fs.readFileSync( builtFile, "utf8" )
- .replace( /"file":"([^"]+)","sources":\["([^"]+)"\]/,
- "\"file\":\"" + unpathedFile.replace( /\.min\.map/, ".min.js" ) +
- "\",\"sources\":[\"" + unpathedFile.replace( /\.min\.map/, ".js" ) + "\"]" );
- fs.writeFileSync( releaseFile, text );
- } else if ( /\.min\.js$/.test( releaseFile ) ) {
- // Remove the source map comment; it causes way too many problems.
- // Keep the map file in case DevTools allow manual association.
- text = fs.readFileSync( builtFile, "utf8" )
- .replace( /\/\/# sourceMappingURL=\S+/, "" );
- fs.writeFileSync( releaseFile, text );
- } else if ( builtFile !== releaseFile ) {
- shell.cp( "-f", builtFile, releaseFile );
- }
- });
- }
-
- function buildGoogleCDN() {
- makeArchive( "googlecdn", googleFilesCDN );
- }
-
- function buildMicrosoftCDN() {
- makeArchive( "mscdn", msFilesCDN );
- }
-
- function makeArchive( cdn, files ) {
- if ( Release.preRelease ) {
- console.log( "Skipping archive creation for " + cdn + "; this is a beta release." );
- return;
- }
-
- console.log( "Creating production archive for " + cdn );
-
- var archiver = require( "archiver" )( "zip" ),
- md5file = cdnFolder + "/" + cdn + "-md5.txt",
- output = fs.createWriteStream(
- cdnFolder + "/" + cdn + "-jquery-" + Release.newVersion + ".zip"
- );
-
- output.on( "error", function( err ) {
- throw err;
- });
-
- archiver.pipe( output );
-
- files = files.map(function( item ) {
- return cdnFolder + "/" + item.replace( /VER/g, Release.newVersion );
- });
-
- shell.exec( "md5sum", files, function( code, stdout ) {
- fs.writeFileSync( md5file, stdout );
- files.push( md5file );
-
- files.forEach(function( file ) {
- archiver.append( fs.createReadStream( file ), { name: file } );
- });
-
- archiver.finalize();
- });
- }
+ // Have jquery-release update the version
+ // in our bower.json template
+ Release._jsonFiles.push( "build/release/_bower.json" );
Release.define({
npmPublish: true,
- issueTracker: "trac",
- contributorReportId: 508,
+ issueTracker: "github",
/**
* Ensure the repo is in a proper state before release
* @param {Function} callback
@@ -123,48 +31,37 @@ module.exports = function( Release ) {
*/
generateArtifacts: function( callback ) {
Release.exec( "grunt", "Grunt command failed" );
- makeReleaseCopies();
- callback([ "dist/jquery.js", "dist/jquery.min.js", "dist/jquery.min.map" ]);
+ cdn.makeReleaseCopies( Release );
+ callback( files );
},
/**
- * Release completion
+ * Acts as insertion point for restoring Release.dir.repo
+ * It was changed to reuse npm publish code in jquery-release
+ * for publishing the distribution repo instead
*/
- complete: function() {
- // Build CDN archives async
- buildGoogleCDN();
- buildMicrosoftCDN();
- _complete();
+ npmTags: function() {
+ // origRepo is not defined if dist was skipped
+ Release.dir.repo = Release.dir.origRepo || Release.dir.repo;
+ return npmTags();
},
/**
- * Our trac milestones are different than the new version
- * @example
- *
- * // For Release.newVersion equal to 2.1.0 or 1.11.0
- * Release._tracMilestone();
- * // => 1.11/2.1
- *
- * // For Release.newVersion equal to 2.1.1 or 1.11.1
- * Release._tracMilestone();
- * // => 1.11.1/2.1.1
+ * Publish to distribution repo and npm
+ * @param {Function} callback
*/
- tracMilestone: function() {
- var otherVersion,
- m = Release.newVersion.split( "." ),
- major = m[0] | 0,
- minor = m[1] | 0,
- patch = m[2] | 0 ? "." + m[2] : "",
- version = major + "." + minor + patch;
- if ( major === 1) {
- otherVersion = "2." + ( minor - 10 ) + patch;
- return version + "/" + otherVersion;
+ dist: function( callback ) {
+
+ if ( Release.isTest ) {
+ callback();
+ return;
}
- otherVersion = "1." + ( minor + 10 ) + patch;
- return otherVersion + "/" + version;
+
+ dist( Release, callback );
}
});
};
module.exports.dependencies = [
"archiver@0.5.2",
- "shelljs@0.2.6"
+ "shelljs@0.2.6",
+ "npm@2.3.0"
];