From 3f8559731f2c02df50b52a397b8b93fea4748ecc Mon Sep 17 00:00:00 2001 From: Kaito Udagawa Date: Wed, 30 Nov 2016 13:21:30 +0900 Subject: [PATCH] fix(post): Create a tag before makeing a release --- src/post.js | 30 ++++++++++++++++++------------ test/mocks/github.js | 8 +++++--- test/specs/post.js | 8 ++++---- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/post.js b/src/post.js index 47e6893b..7dbc33d6 100644 --- a/src/post.js +++ b/src/post.js @@ -24,12 +24,18 @@ module.exports = function (config, cb) { if (err) return cb(err) var ghRepo = parseSlug(pkg.repository.url) + var tag = { + owner: ghRepo[0], + repo: ghRepo[1], + ref: 'refs/heads/v' + pkg.version, + sha: hash + } var release = { owner: ghRepo[0], repo: ghRepo[1], - name: 'v' + pkg.version, tag_name: 'v' + pkg.version, - target_commitish: hash, + name: 'v' + pkg.version, + target_commitish: options.branch, draft: !!options.debug, body: log } @@ -43,18 +49,18 @@ module.exports = function (config, cb) { 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 (options.debug) return cb(null, true, release) - var editingRelease = { - owner: ghRepo[0], - repo: ghRepo[1], - id: res.id, - target_commitish: options.branch - } - - github.repos.editRelease(editingRelease, function (err) { + github.repos.createRelease(release, function (err) { if (err) return cb(err) cb(null, true, release) diff --git a/test/mocks/github.js b/test/mocks/github.js index b64d455d..12953f7c 100644 --- a/test/mocks/github.js +++ b/test/mocks/github.js @@ -3,11 +3,13 @@ module.exports = function () { authenticate: function () { return true }, + gitdata: { + createReference: function (release, cb) { + cb(null) + } + }, repos: { createRelease: function (release, cb) { - cb(null, {id: 1}) - }, - editRelease: function (release, cb) { cb(null) } } diff --git a/test/specs/post.js b/test/specs/post.js index cf0fa900..fbdc1683 100644 --- a/test/specs/post.js +++ b/test/specs/post.js @@ -23,14 +23,14 @@ var defaultRelease = { repo: 'up', name: 'v1.0.0', tag_name: 'v1.0.0', - target_commitish: 'bar', + target_commitish: 'master', body: 'the log' } test('full post run', function (t) { t.test('in debug mode w/o token', function (tt) { post({ - options: {debug: true}, + options: {debug: true, branch: 'master'}, pkg: pkg, plugins: plugins }, function (err, published, release) { @@ -44,7 +44,7 @@ test('full post run', function (t) { t.test('in debug mode w/token', function (tt) { post({ - options: {debug: true, githubToken: 'yo'}, + options: {debug: true, githubToken: 'yo', branch: 'master'}, pkg: pkg, plugins: plugins }, function (err, published, release) { @@ -58,7 +58,7 @@ test('full post run', function (t) { t.test('production', function (tt) { post({ - options: {githubToken: 'yo'}, + options: {githubToken: 'yo', branch: 'master'}, pkg: pkg, plugins: plugins }, function (err, published, release) {