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
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
|
|
}
|
|
|