Socket
Socket
Sign inDemoInstall

heroku-releases-retry

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

heroku-releases-retry - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

26

commands/retry.js

@@ -16,4 +16,4 @@ 'use strict'

yield cli.action(`Retrying ${cli.color.green('v' + release.version)} on ${cli.color.app(context.app)}`, {success: false}, co(function * () {
let retry = yield heroku.post(`/apps/${context.app}/releases`, {
let retry = yield cli.action(`Retrying ${cli.color.green('v' + release.version)} on ${cli.color.app(context.app)}`, {success: false}, co(function * () {
let r = yield heroku.post(`/apps/${context.app}/releases`, {
body: {

@@ -24,4 +24,24 @@ slug: release.slug.id,

})
cli.action.done(`done, ${cli.color.green('v' + retry.version)}`)
cli.action.done(`done, ${cli.color.green('v' + r.version)}`)
return r
}))
if (retry.output_stream_url) {
cli.log('Running release command...')
yield new Promise(function (resolve, reject) {
let stream = cli.got.stream(retry.output_stream_url)
stream.on('error', reject)
stream.on('end', resolve)
let piped = stream.pipe(process.stdout)
piped.on('error', reject)
}).catch(err => {
if (err.statusCode === 404) {
cli.warn('Release command starting. Use `heroku releases:output` to view the log.')
return
}
throw err
})
}
}

@@ -28,0 +48,0 @@

10

package.json
{
"name": "heroku-releases-retry",
"version": "1.0.1",
"version": "1.0.2",
"description": "Retry failed release-phase commands",

@@ -21,11 +21,13 @@ "main": "index.js",

"dependencies": {
"heroku-cli-util": "6.0.16",
"co": "4.6.0"
"co": "4.6.0",
"heroku-cli-util": "6.0.16"
},
"devDependencies": {
"chai": "^3.3.0",
"mocha": "3.1.2",
"nock": "9.0.2",
"nyc": "8.4.0",
"standard": "8.5.0"
"standard": "8.5.0",
"std-mocks": "1.0.1"
}
}

@@ -7,2 +7,4 @@ 'use strict'

const cmd = require('../..').commands.find(c => c.topic === 'releases' && c.command === 'retry')
const expect = require('chai').expect
const stdMocks = require('std-mocks')

@@ -21,2 +23,39 @@ describe('releases:retry', function () {

})
it('retries the release with output', function () {
stdMocks.use()
let busl = nock('https://busl.test:443')
.get('/streams/release.log')
.reply(200, 'Release Output Content')
let api = nock('https://api.heroku.com:443')
.get('/apps/myapp/releases')
.reply(200, [{ 'slug': { id: 'slug_uuid' }, version: 40 }])
.post('/apps/myapp/releases', { slug: 'slug_uuid', description: 'Retrying v40' })
.reply(200, {output_stream_url: 'https://busl.test/streams/release.log'})
return cmd.run({app: 'myapp'})
.then(() => expect(stdMocks.flush().stdout.join('')).to.equal('Release Output Content'))
.then(() => expect(cli.stderr).to.equal(''))
.then(() => api.done())
.then(() => busl.done())
.then(() => stdMocks.restore())
.catch(() => stdMocks.restore())
})
it('retries the release with missing output', function () {
let busl = nock('https://busl.test:443')
.get('/streams/release.log')
.reply(404, '')
let api = nock('https://api.heroku.com:443')
.get('/apps/myapp/releases')
.reply(200, [{ 'slug': { id: 'slug_uuid' }, version: 40 }])
.post('/apps/myapp/releases', { slug: 'slug_uuid', description: 'Retrying v40' })
.reply(200, {version: 1, output_stream_url: 'https://busl.test/streams/release.log'})
return cmd.run({app: 'myapp'})
.then(() => expect(cli.stdout).to.equal('Running release command...\n'))
.then(() => expect(cli.stderr).to.contain('Release command starting. Use `heroku releases:output` to view the log.\n'))
.then(() => api.done())
.then(() => busl.done())
})
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc