diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index 1b9eb07ce..1f8925aed 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -22,7 +22,7 @@ module.exports = (gruntObject) -> grunt.registerTask 'publish-build', 'Publish the built app', -> tasks = [] tasks.push('build-docs', 'prepare-docs') if process.platform is 'darwin' - tasks.push('upload-assets') if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'master' + tasks.push('upload-assets') grunt.task.run(tasks) grunt.registerTask 'prepare-docs', 'Move api.json to atom-api.json', -> @@ -31,6 +31,14 @@ module.exports = (gruntObject) -> cp path.join(docsOutputDir, 'api.json'), path.join(buildDir, 'atom-api.json') grunt.registerTask 'upload-assets', 'Upload the assets to a GitHub release', -> + switch process.env.JANKY_BRANCH + when 'stable' + isPrerelease = false + when 'beta' + isPrerelease = true + else + return + doneCallback = @async() startTime = Date.now() done = (args...) -> @@ -46,7 +54,7 @@ module.exports = (gruntObject) -> zipAssets buildDir, assets, (error) -> return done(error) if error? - getAtomDraftRelease (error, release) -> + getAtomDraftRelease isPrerelease, (error, release) -> return done(error) if error? assetNames = (asset.assetName for asset in assets) deleteExistingAssets release, assetNames, (error) -> @@ -120,9 +128,9 @@ zipAssets = (buildDir, assets, callback) -> tasks.push(zip.bind(this, buildDir, sourcePath, assetName)) async.parallel(tasks, callback) -getAtomDraftRelease = (callback) -> +getAtomDraftRelease = (isPrerelease, callback) -> atomRepo = new GitHub({repo: 'atom/atom', token}) - atomRepo.getReleases (error, releases=[]) -> + atomRepo.getReleases {prerelease: isPrerelease}, (error, releases=[]) -> if error? logError('Fetching atom/atom releases failed', error, releases) callback(error) @@ -142,9 +150,9 @@ getAtomDraftRelease = (callback) -> firstDraft.assets = assets callback(null, firstDraft) else - createAtomDraftRelease(callback) + createAtomDraftRelease(isPrerelease, callback) -createAtomDraftRelease = (callback) -> +createAtomDraftRelease = (isPrerelease, callback) -> {version} = require('../../package.json') options = uri: 'https://api.github.com/repos/atom/atom/releases' @@ -152,6 +160,7 @@ createAtomDraftRelease = (callback) -> headers: defaultHeaders json: tag_name: "v#{version}" + prerelease: isPrerelease name: version draft: true body: """ diff --git a/build/tasks/set-version-task.coffee b/build/tasks/set-version-task.coffee index 48b6091c4..2cc148011 100644 --- a/build/tasks/set-version-task.coffee +++ b/build/tasks/set-version-task.coffee @@ -5,7 +5,7 @@ module.exports = (grunt) -> {spawn} = require('./task-helpers')(grunt) getVersion = (callback) -> - onBuildMachine = process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'master' + onBuildMachine = process.env.JANKY_SHA1 and process.env.JANKY_BRANCH in ['stable', 'beta'] inRepository = fs.existsSync(path.resolve(__dirname, '..', '..', '.git')) {version} = require(path.join(grunt.config.get('atom.appDir'), 'package.json')) if onBuildMachine or not inRepository