You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

36 lines
838 B

var shell = require('shelljs')
if (exec('git status --porcelain').output !== '') {
console.error('Git working directory not clean. Please commit all chances to release a new package to npm.')
process.exit(2)
}
var versionIncrement = process.argv[process.argv.length - 1]
var versionIncrements = ['major', 'minor', 'patch']
if (versionIncrements.indexOf(versionIncrement) < 0) {
console.error('Usage: node release.js major|minor|patch')
process.exit(1)
}
exec('npm test')
exec('npm run geotag')
exec('git commit -m "Geotag package for release" package.json')
exec('npm version ' + versionIncrement)
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
}