From 1d931068d30b6a516b883cf7f420606de21eab68 Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Fri, 23 May 2014 12:45:51 -0400 Subject: Release: ensure Sizzle is the latest tag Fixes #14915 --- build/ensure-sizzle.js | 40 ++++++++++++++++++++++++++++++++++++++++ build/release.js | 8 ++++++++ 2 files changed, 48 insertions(+) create mode 100644 build/ensure-sizzle.js (limited to 'build') diff --git a/build/ensure-sizzle.js b/build/ensure-sizzle.js new file mode 100644 index 000000000..01a128efb --- /dev/null +++ b/build/ensure-sizzle.js @@ -0,0 +1,40 @@ +var fs = require( "fs" ), + bower = require( "grunt-bowercopy/node_modules/bower" ), + sizzleLoc = __dirname + "/../src/sizzle/dist/sizzle.js", + rversion = /Engine v(\d+\.\d+\.\d+(?:-\w+)?)/; + +/** + * Retrieve the latest tag of Sizzle from bower + * @param {Function(string)} callback + */ +function getLatestSizzle( callback ) { + bower.commands.info( "sizzle", "version" ) + .on( "end", callback ); +} + +/** + * Ensure the /src folder has the latest tag of Sizzle + * @param {Object} Release + * @param {Function} callback + */ +function ensureSizzle( Release, callback ) { + console.log(); + console.log( "Checking Sizzle version..." ); + getLatestSizzle(function( latest ) { + var match = rversion.exec( fs.readFileSync( sizzleLoc, "utf8" ) ), + version = match ? match[ 1 ] : "Not Found"; + + if ( version !== latest ) { + console.log( + "The Sizzle version in the src folder (" + version.red + + ") is not the latest tag (" + latest.green + ")." + ); + Release.confirm( callback ); + } else { + console.log( "Sizzle is latest (" + latest.green + ")" ); + callback(); + } + }); +} + +module.exports = ensureSizzle; diff --git a/build/release.js b/build/release.js index 529137da7..9f6b2e2a9 100644 --- a/build/release.js +++ b/build/release.js @@ -3,6 +3,7 @@ module.exports = function( Release ) { var fs = require( "fs" ), shell = require( "shelljs" ), + ensureSizzle = require( "./ensure-sizzle" ), devFile = "dist/jquery.js", minFile = "dist/jquery.min.js", @@ -116,6 +117,13 @@ module.exports = function( Release ) { npmPublish: true, issueTracker: "trac", contributorReportId: 508, + /** + * Ensure the repo is in a proper state before release + * @param {Function} callback + */ + checkRepoState: function( callback ) { + ensureSizzle( Release, callback ); + }, /** * Generates any release artifacts that should be included in the release. * The callback must be invoked with an array of files that should be -- cgit v1.2.3