mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
117 lines
2.8 KiB
JavaScript
117 lines
2.8 KiB
JavaScript
|
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-compat-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-compat-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() );
|
||
|
|
||
|
// Restore newVersion
|
||
|
Release.newVersion = Release.distVersion;
|
||
|
|
||
|
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);
|
||
|
};
|