[npm] added release task

This commit is contained in:
spalger 2015-10-26 16:28:07 -05:00
parent e376f7557f
commit f864dd0aa8
4 changed files with 69 additions and 12 deletions

View file

@ -1,19 +1,20 @@
module.exports = function (grunt) {
require('jit-grunt')(grunt);
require('jit-grunt')(grunt, {
s3: 'grunt-aws'
});
grunt.initConfig({
pkg: require('./package.json'),
clean: {
build: {
src: 'build'
}
build: { src: 'build' },
target: { src: 'target' },
},
compress: {
build: {
options: {
archive: 'target/sense-<%= pkg.version %>.zip'
archive: 'target/sense-<%= pkg.version %>.tar.gz'
},
files: [
{ src: ['build/**'], dest: '/' },
@ -38,13 +39,24 @@ module.exports = function (grunt) {
},
]
}
},
s3: {
release: {
options: {
bucket: 'download.elasticsearch.org',
access: 'private',
},
files: [
{
src: 'target/sense-<%= pkg.version %>.tar.gz',
dest: 'elasticsearch/sense/sense-<%= pkg.version %>.tar.gz'
}
]
}
}
});
grunt.registerTask('build', [
'clean:build',
'copy:build',
'compress:build'
]);
require('./tasks/build')(grunt);
require('./tasks/release')(grunt);
};

View file

@ -10,11 +10,13 @@
"url": "http://github.com/elastic/sense.git"
},
"scripts": {
"build": "grunt build"
"build": "grunt build",
"release": "grunt release"
},
"devDependencies": {
"eslint": "^1.7.3",
"grunt": "^0.4.5",
"grunt-aws": "^0.6.1",
"grunt-cli": "^0.1.13",
"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-compress": "^0.14.0",

10
tasks/build.js Normal file
View file

@ -0,0 +1,10 @@
module.exports = function (grunt) {
grunt.registerTask('build', [
'clean:build',
'clean:target',
'copy:build',
'compress:build'
]);
};

33
tasks/release.js Normal file
View file

@ -0,0 +1,33 @@
var readline = require('readline');
module.exports = function (grunt) {
grunt.registerTask('_release:confirmUpload', function () {
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('close', this.async());
rl.question('Do you want to actually upload the files to s3 after building?, [N/y] ', function (resp) {
var debug = resp.toLowerCase().trim()[0] !== 'y';
grunt.config.set('s3.release.options.dryRun', debug);
rl.close();
});
});
// collect the key and secret from the .aws-config.json file, finish configuring the s3 task
grunt.registerTask('_release:loadS3Config', function () {
var config = grunt.file.readJSON('.aws-config.json');
grunt.config('s3.release.options.accessKeyId', config.key);
grunt.config('s3.release.options.secretAccessKey', config.secret);
});
grunt.registerTask('release', [
'_release:confirmUpload',
'_release:loadS3Config',
'build',
's3:release'
]);
};