mirror of
https://github.com/atom/atom.git
synced 2026-02-15 00:55:14 -05:00
Merge branch 'master' into ns-modernize-build
This commit is contained in:
@@ -14,6 +14,8 @@ _ = require 'underscore-plus'
|
||||
packageJson = require '../package.json'
|
||||
|
||||
module.exports = (grunt) ->
|
||||
process.env.ATOM_RESOURCE_PATH ?= path.resolve(__dirname, '..')
|
||||
|
||||
require('time-grunt')(grunt)
|
||||
|
||||
grunt.loadNpmTasks('grunt-babel')
|
||||
|
||||
@@ -40,6 +40,8 @@ module.exports = (grunt) ->
|
||||
continue if path.basename(moduleDirectory) is '.bin'
|
||||
|
||||
metadataPath = path.join(moduleDirectory, 'package.json')
|
||||
continue unless fs.existsSync(metadataPath)
|
||||
|
||||
metadata = grunt.file.readJSON(metadataPath)
|
||||
continue unless metadata?.engines?.atom?
|
||||
|
||||
|
||||
@@ -34,7 +34,12 @@ module.exports = (gruntObject) ->
|
||||
grunt.registerTask 'upload-assets', 'Upload the assets to a GitHub release', ->
|
||||
releaseBranch = grunt.config.get('atom.releaseBranch')
|
||||
isPrerelease = grunt.config.get('atom.channel') is 'beta'
|
||||
return unless releaseBranch?
|
||||
|
||||
unless releaseBranch?
|
||||
grunt.log.ok("Skipping upload-assets to #{repo} repo because this is not a release branch")
|
||||
return
|
||||
|
||||
grunt.log.ok("Starting upload-assets to #{repo} repo")
|
||||
|
||||
doneCallback = @async()
|
||||
startTime = Date.now()
|
||||
@@ -119,6 +124,7 @@ logError = (message, error, details) ->
|
||||
|
||||
zipAssets = (buildDir, assets, callback) ->
|
||||
zip = (directory, sourcePath, assetName, callback) ->
|
||||
grunt.log.ok("Zipping #{sourcePath} into #{assetName}")
|
||||
if process.platform is 'win32'
|
||||
sevenZipPath = if process.env.JANKY_SHA1? then "C:/psmodules/" else ""
|
||||
zipCommand = "#{sevenZipPath}7z.exe a -r \"#{assetName}\" \"#{sourcePath}\""
|
||||
@@ -136,6 +142,7 @@ zipAssets = (buildDir, assets, callback) ->
|
||||
async.parallel(tasks, callback)
|
||||
|
||||
getAtomDraftRelease = (isPrerelease, branchName, callback) ->
|
||||
grunt.log.ok("Obtaining GitHub draft release for #{branchName}")
|
||||
atomRepo = new GitHub({repo: repo, token})
|
||||
atomRepo.getReleases {prerelease: isPrerelease}, (error, releases=[]) ->
|
||||
if error?
|
||||
@@ -154,12 +161,14 @@ getAtomDraftRelease = (isPrerelease, branchName, callback) ->
|
||||
logError('Fetching draft release assets failed', error, assets)
|
||||
callback(error ? new Error(response.statusCode))
|
||||
else
|
||||
grunt.log.ok("Using GitHub draft release #{firstDraft.name}")
|
||||
firstDraft.assets = assets
|
||||
callback(null, firstDraft)
|
||||
else
|
||||
createAtomDraftRelease(isPrerelease, branchName, callback)
|
||||
|
||||
createAtomDraftRelease = (isPrerelease, branchName, callback) ->
|
||||
grunt.log.ok("Creating GitHub draft release #{branchName}")
|
||||
{version} = require('../../package.json')
|
||||
options =
|
||||
uri: "https://api.github.com/repos/#{repo}/releases"
|
||||
@@ -185,6 +194,7 @@ createAtomDraftRelease = (isPrerelease, branchName, callback) ->
|
||||
callback(null, body)
|
||||
|
||||
deleteRelease = (release) ->
|
||||
grunt.log.ok("Deleting GitHub release #{release.tag_name}")
|
||||
options =
|
||||
uri: release.url
|
||||
method: 'DELETE'
|
||||
@@ -195,6 +205,7 @@ deleteRelease = (release) ->
|
||||
logError('Deleting release failed', error, body)
|
||||
|
||||
deleteExistingAssets = (release, assetNames, callback) ->
|
||||
grunt.log.ok("Deleting #{assetNames.join(',')} from GitHub release #{release.tag_name}")
|
||||
[callback, assetNames] = [assetNames, callback] if not callback?
|
||||
|
||||
deleteAsset = (url, callback) ->
|
||||
@@ -216,6 +227,7 @@ deleteExistingAssets = (release, assetNames, callback) ->
|
||||
|
||||
uploadAssets = (release, buildDir, assets, callback) ->
|
||||
uploadToReleases = (release, assetName, assetPath, callback) ->
|
||||
grunt.log.ok("Uploading #{assetName} to GitHub release #{release.tag_name}")
|
||||
options =
|
||||
uri: release.upload_url.replace(/\{.*$/, "?name=#{assetName}")
|
||||
method: 'POST'
|
||||
@@ -248,6 +260,7 @@ uploadAssets = (release, buildDir, assets, callback) ->
|
||||
s3 = new AWS.S3 s3Info
|
||||
|
||||
key = "releases/#{release.tag_name}/#{assetName}"
|
||||
grunt.log.ok("Uploading to S3 #{key}")
|
||||
uploadParams =
|
||||
Bucket: s3Bucket
|
||||
ACL: 'public-read'
|
||||
|
||||
Reference in New Issue
Block a user