release.js
687 Bytes
var shell = require('shelljs');
if (exec('git status --porcelain').output) {
console.error('Git working directory not clean.');
process.exit(2);
}
var versionIncrement = process.argv[process.argv.length -1];
if (versionIncrement != 'major' && versionIncrement != 'minor' && versionIncrement != 'patch') {
console.error('Usage: node release.js major|minor|patch');
process.exit(1);
}
exec('npm version ' + versionIncrement);
exec('npm test');
exec('git push');
exec('git push --tags');
exec('npm publish');
function exec(cmd) {
var ret = shell.exec(cmd, { silent : true });
if (ret.code !== 0) {
console.error(ret.output);
process.exit(1);
}
return ret;
}