fix(post): Create a tag before makeing a release

This commit is contained in:
Kaito Udagawa 2016-11-30 13:21:30 +09:00 committed by Gregor Martynus
parent f148a61339
commit 3f8559731f
3 changed files with 27 additions and 19 deletions

View File

@ -24,12 +24,18 @@ module.exports = function (config, cb) {
if (err) return cb(err) if (err) return cb(err)
var ghRepo = parseSlug(pkg.repository.url) var ghRepo = parseSlug(pkg.repository.url)
var tag = {
owner: ghRepo[0],
repo: ghRepo[1],
ref: 'refs/heads/v' + pkg.version,
sha: hash
}
var release = { var release = {
owner: ghRepo[0], owner: ghRepo[0],
repo: ghRepo[1], repo: ghRepo[1],
name: 'v' + pkg.version,
tag_name: 'v' + pkg.version, tag_name: 'v' + pkg.version,
target_commitish: hash, name: 'v' + pkg.version,
target_commitish: options.branch,
draft: !!options.debug, draft: !!options.debug,
body: log body: log
} }
@ -43,18 +49,18 @@ module.exports = function (config, cb) {
token: options.githubToken token: options.githubToken
}) })
github.repos.createRelease(release, function (err, res) { if (options.debug) {
return github.repos.createRelease(release, function (err) {
if (err) return cb(err)
cb(null, true, release)
})
}
github.gitdata.createReference(tag, function (err) {
if (err) return cb(err) if (err) return cb(err)
if (options.debug) return cb(null, true, release)
var editingRelease = { github.repos.createRelease(release, function (err) {
owner: ghRepo[0],
repo: ghRepo[1],
id: res.id,
target_commitish: options.branch
}
github.repos.editRelease(editingRelease, function (err) {
if (err) return cb(err) if (err) return cb(err)
cb(null, true, release) cb(null, true, release)

View File

@ -3,11 +3,13 @@ module.exports = function () {
authenticate: function () { authenticate: function () {
return true return true
}, },
gitdata: {
createReference: function (release, cb) {
cb(null)
}
},
repos: { repos: {
createRelease: function (release, cb) { createRelease: function (release, cb) {
cb(null, {id: 1})
},
editRelease: function (release, cb) {
cb(null) cb(null)
} }
} }

View File

@ -23,14 +23,14 @@ var defaultRelease = {
repo: 'up', repo: 'up',
name: 'v1.0.0', name: 'v1.0.0',
tag_name: 'v1.0.0', tag_name: 'v1.0.0',
target_commitish: 'bar', target_commitish: 'master',
body: 'the log' body: 'the log'
} }
test('full post run', function (t) { test('full post run', function (t) {
t.test('in debug mode w/o token', function (tt) { t.test('in debug mode w/o token', function (tt) {
post({ post({
options: {debug: true}, options: {debug: true, branch: 'master'},
pkg: pkg, pkg: pkg,
plugins: plugins plugins: plugins
}, function (err, published, release) { }, function (err, published, release) {
@ -44,7 +44,7 @@ test('full post run', function (t) {
t.test('in debug mode w/token', function (tt) { t.test('in debug mode w/token', function (tt) {
post({ post({
options: {debug: true, githubToken: 'yo'}, options: {debug: true, githubToken: 'yo', branch: 'master'},
pkg: pkg, pkg: pkg,
plugins: plugins plugins: plugins
}, function (err, published, release) { }, function (err, published, release) {
@ -58,7 +58,7 @@ test('full post run', function (t) {
t.test('production', function (tt) { t.test('production', function (tt) {
post({ post({
options: {githubToken: 'yo'}, options: {githubToken: 'yo', branch: 'master'},
pkg: pkg, pkg: pkg,
plugins: plugins plugins: plugins
}, function (err, published, release) { }, function (err, published, release) {