From 14c3feee1778901f0145b95df837a56b14d3df63 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 14 Jan 2014 12:07:23 -0800 Subject: [PATCH] Publish master builds to the draft release --- build/tasks/publish-build-task.coffee | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index cd1279d67..b6c06dfa3 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -3,6 +3,7 @@ path = require 'path' _ = require 'underscore-plus' fs = require 'fs-plus' +GitHub = require 'github-releases' request = require 'request' grunt = null @@ -29,7 +30,11 @@ module.exports = (gruntObject) -> return done(error) if error? uploadAsset release, (error) -> return done(error) if error? - publishRelease(release, done) + publishRelease release, (error) -> + return done(error) if error? + getAtomDraftRelease (error, release) -> + return done(error) if error? + uploadAsset(release, done) logError = (message, error, details) -> grunt.log.error(message) @@ -64,6 +69,18 @@ getRelease = (callback) -> return callback() +getAtomDraftRelease = (callback) -> + atomRepo = new GitHub({repo: 'atom/atom', token}) + atomRepo.getReleases (error, releases=[]) -> + if error? + logError('Fetching atom/atom releases failed', error, releases) + callback(error) + else + for release in releases when release.draft + callback(null, release) + return + callback(new Error('No draft release in atom/atom repo')) + deleteRelease = (release) -> options = uri: release.url @@ -122,7 +139,7 @@ createRelease = (callback) -> uploadAsset = (release, callback) -> options = - uri: "https://uploads.github.com/repos/atom/atom-master-builds/releases/#{release.id}/assets?name=#{assetName}" + uri: "#{release.assetsUrl}?assets?name=#{assetName}" method: 'POST' headers: _.extend({ 'Content-Type': 'application/zip'