From 59d439b66f9d18b06f396bb11b6607735b8182ed Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Wed, 18 Feb 2015 12:17:47 -0700 Subject: [PATCH] Closes #3068 - Create SHASUMs for uploaded files Closes #3068 --- tasks/build.js | 3 ++- tasks/config/s3.js | 38 +++++++++++++++++++++++++------------- tasks/create_packages.js | 30 ++++++++++++++++++++---------- tasks/create_shasums.js | 27 +++++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 24 deletions(-) create mode 100644 tasks/create_shasums.js diff --git a/tasks/build.js b/tasks/build.js index 4e470d229347..b84b34c3f4cc 100644 --- a/tasks/build.js +++ b/tasks/build.js @@ -23,6 +23,7 @@ module.exports = function (grunt) { 'clean:test_from_node_modules', 'download_node_binaries', 'copy:versioned_dist', - 'create_packages' + 'create_packages', + 'create_shasums' ]); }; diff --git a/tasks/config/s3.js b/tasks/config/s3.js index ede53704a0de..f47df8c65350 100644 --- a/tasks/config/s3.js +++ b/tasks/config/s3.js @@ -1,19 +1,31 @@ -module.exports = function (config) { +var createPackages = require('../create_packages'); +var _ = require('lodash'); +var getBaseNames = createPackages.getBaseNames; +module.exports = function (grunt) { + var upload = _(getBaseNames(grunt)) + .map(function (basename) { + return [ + basename + '.tar.gz', + basename + '.tar.gz.sha1.txt', + basename + '.zip', + basename + '.zip.sha1.txt' + ]; + }) + .flatten() + .map(function (filename) { + return { + src: 'target/' + filename, + dest: 'kibana/kibana/' + filename + }; + }) + .value(); + return { release: { bucket: 'download.elasticsearch.org', access: 'private', - //debug: true, // uncommment to prevent actual upload - upload: [ - { - src: 'target/<%= pkg.name %>-<%= pkg.version %>.zip', - dest: 'kibana/kibana/<%= pkg.name %>-<%= pkg.version %>.zip', - }, - { - src: 'target/<%= pkg.name %>-<%= pkg.version %>.tar.gz', - dest: 'kibana/kibana/<%= pkg.name %>-<%= pkg.version %>.tar.gz', - } - ] + // debug: true, // uncommment to prevent actual upload + upload: upload } }; -}; \ No newline at end of file +}; diff --git a/tasks/create_packages.js b/tasks/create_packages.js index 74472e5487d5..0a12c6a61524 100644 --- a/tasks/create_packages.js +++ b/tasks/create_packages.js @@ -1,26 +1,32 @@ var child_process = require('child_process'); var Promise = require('bluebird'); -var exec = Promise.promisify(child_process.exec); var join = require('path').join; var mkdirp = Promise.promisifyAll(require('mkdirp')); -module.exports = function (grunt) { +var exec = Promise.promisify(child_process.exec); + +var getBaseNames = function (grunt) { + var packageName = grunt.config.get('pkg.name'); + var version = grunt.config.get('pkg.version'); + var platforms = grunt.config.get('platforms'); + return platforms.map(function (platform) { + return packageName + '-' + version + '-' + platform; + }); +}; + +function createPackages(grunt) { grunt.registerTask('create_packages', function () { var done = this.async(); var target = grunt.config.get('target'); - var packageName = grunt.config.get('pkg.name'); - var version = grunt.config.get('pkg.version'); var distPath = join(grunt.config.get('build'), 'dist'); - var platforms = grunt.config.get('platforms'); - var createPackage = function (platform) { + var createPackage = function (name) { var options = { cwd: distPath }; - var name = packageName + '-' + version + '-' + platform; var archiveName = join(target, name); var tgzCmd = 'tar -zcf ' + archiveName + '.tar.gz ' + name; var zipCmd = 'zip -rq ' + archiveName + '.zip ' + name; - if (platform === 'windows') { + if (/windows/.test(name)) { zipCmd = 'zip -rq -ll ' + archiveName + '.zip ' + name; } @@ -33,7 +39,11 @@ module.exports = function (grunt) { }); }; - Promise.map(platforms, createPackage).finally(done); + Promise.map(getBaseNames(grunt), createPackage).finally(done); }); -}; +} + +module.exports = createPackages; +createPackages.exec = exec; +createPackages.getBaseNames = getBaseNames; diff --git a/tasks/create_shasums.js b/tasks/create_shasums.js new file mode 100644 index 000000000000..4d2a32abe9bc --- /dev/null +++ b/tasks/create_shasums.js @@ -0,0 +1,27 @@ +var createPackages = require('./create_packages'); +var Promise = require('bluebird'); +var exec = createPackages.exec; +var getBaseNames = createPackages.getBaseNames; +var _ = require('lodash'); +module.exports = function (grunt) { + grunt.registerTask('create_shasums', function () { + var done = this.async(); + var target = grunt.config.get('target'); + var options = { cwd: target }; + + var createShasum = function (filename) { + var shacmd = 'shasum ' + filename + ' > ' + filename + '.sha1.txt'; + return exec(shacmd, options); + }; + + var filenames = _(getBaseNames(grunt)) + .map(function (basename) { + return [ basename + '.tar.gz', basename + '.zip' ]; + }) + .flatten() + .value(); + + Promise.map(filenames, createShasum).finally(done); + + }); +};