fix(restart): correctly prevent double npm publish
run
This commit is contained in:
parent
f7faebb175
commit
b39fecbdc2
@ -43,7 +43,14 @@ if (~argv._.indexOf('pre')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
console.log('Publishing v' + result)
|
console.log('Publishing v' + result)
|
||||||
if (publish) require('../src/restart')()
|
if (publish) require('../src/restart')(function (err) {
|
||||||
|
if (err) {
|
||||||
|
console.log('Something went wrong.')
|
||||||
|
throw err
|
||||||
|
}
|
||||||
|
|
||||||
|
process.exit(1)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -59,7 +66,6 @@ if (~argv._.indexOf('post')) {
|
|||||||
// see src/restart.js
|
// see src/restart.js
|
||||||
if (~npmArgv.indexOf('--semantic-release-rerun')) {
|
if (~npmArgv.indexOf('--semantic-release-rerun')) {
|
||||||
console.log('Everything is alright :) npm will now print an error message that you can safely ignore.')
|
console.log('Everything is alright :) npm will now print an error message that you can safely ignore.')
|
||||||
process.exit(1)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "semantic-release",
|
"name": "semantic-release",
|
||||||
"description": "semantic semver compliant package publishing",
|
"description": "semantic semver compliant package publishing",
|
||||||
"version": "0.0.3",
|
"version": "0.0.5",
|
||||||
"author": "Stephan Bönnemann <stephan@boennemann.me>",
|
"author": "Stephan Bönnemann <stephan@boennemann.me>",
|
||||||
"bin": "./bin/semantic-release",
|
"bin": "./bin/semantic-release",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
var spawn = require('child_process').spawn
|
var spawn = require('child_process').spawn
|
||||||
|
|
||||||
module.exports = function () {
|
var exports = module.exports = function (cb) {
|
||||||
// npm loads package.json data before running the `prepublish` hook
|
// npm loads package.json data before running the `prepublish` hook
|
||||||
// changing the version on `prepublish` has no effect
|
// changing the version on `prepublish` has no effect
|
||||||
// see https://github.com/npm/npm/issues/7118
|
// see https://github.com/npm/npm/issues/7118
|
||||||
@ -10,7 +10,21 @@ module.exports = function () {
|
|||||||
// the package.json is then loaded again and the correct version will be published
|
// the package.json is then loaded again and the correct version will be published
|
||||||
|
|
||||||
var child = spawn('npm', ['publish', '--semantic-release-rerun'])
|
var child = spawn('npm', ['publish', '--semantic-release-rerun'])
|
||||||
|
var handler = exports.handleCloseAndExit.bind(null, cb)
|
||||||
|
|
||||||
child.stdout.pipe(process.stdout)
|
child.stdout.pipe(process.stdout)
|
||||||
child.stderr.pipe(process.stderr)
|
child.stderr.pipe(process.stderr)
|
||||||
|
|
||||||
|
child.on('close', handler)
|
||||||
|
child.on('exit', handler)
|
||||||
|
child.on('error', cb)
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.handleCloseAndExit = function (cb, code, signal) {
|
||||||
|
if (code === 0) return cb(null)
|
||||||
|
cb({
|
||||||
|
code: code,
|
||||||
|
signal: signal,
|
||||||
|
message: 'npm publish failed'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user