mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
proper shrinkwrap in build and release
build will create it if it's missing, copy it to the build and also create a version without dev deps release requires it and fatals if it doesn't exist Conflicts: tasks/build/index.js
This commit is contained in:
parent
8918f26e21
commit
62df5a19c6
3 changed files with 45 additions and 1 deletions
|
@ -2,6 +2,7 @@ module.exports = function (grunt) {
|
|||
let { flatten } = require('lodash');
|
||||
|
||||
grunt.registerTask('build', flatten([
|
||||
'_build:shrinkwrap:ensureExists:true',
|
||||
'_build:getProps',
|
||||
'clean:build',
|
||||
'clean:target',
|
||||
|
@ -12,6 +13,8 @@ module.exports = function (grunt) {
|
|||
'_build:installedPlugins',
|
||||
'_build:packageJson',
|
||||
'_build:readme',
|
||||
'_build:shrinkwrap:copyToBuild',
|
||||
'_build:shrinkwrap:cleanup',
|
||||
'_build:installNpmDeps',
|
||||
'clean:testsFromModules',
|
||||
'run:optimizeBuild',
|
||||
|
|
41
tasks/build/shrinkwrap.js
Normal file
41
tasks/build/shrinkwrap.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
module.exports = function (grunt) {
|
||||
let { config } = grunt;
|
||||
let { statSync } = require('fs');
|
||||
let { join } = require('path');
|
||||
let exec = (...args) => require('../utils/exec')(...args, { cwd: config.get('root') });
|
||||
let newFiles = [];
|
||||
let shrinkwrapFile = join(config.get('root'), 'npm-shrinkwrap.json');
|
||||
|
||||
grunt.registerTask('_build:shrinkwrap:ensureExists', function (createIfMissing) {
|
||||
try {
|
||||
statSync(shrinkwrapFile);
|
||||
} catch (e) {
|
||||
if (e.code !== 'ENOENT') throw e;
|
||||
|
||||
if (createIfMissing) {
|
||||
exec('npm', ['shrinkwrap', '--silent', '--dev']);
|
||||
newFiles.push(shrinkwrapFile);
|
||||
}
|
||||
else grunt.fail.warn('Releases require an npm-shrinkwrap.json file to exist');
|
||||
}
|
||||
});
|
||||
|
||||
grunt.registerTask('_build:shrinkwrap:copyToBuild', function () {
|
||||
// this.requires(['_build:shrinkwrap:ensureExists', 'copy:devSource']);
|
||||
|
||||
// backup shrinkwrap and copy to build
|
||||
exec('cp', ['npm-shrinkwrap.json', 'npm-shrinkwrap.dev']);
|
||||
exec('cp', ['npm-shrinkwrap.json', join(config.get('root'), 'build', 'kibana', 'npm-shrinkwrap.build.json')]);
|
||||
|
||||
// create shrinkwrap without dev dependencies and copy to build
|
||||
exec('npm', ['shrinkwrap', '--silent']);
|
||||
exec('cp', ['npm-shrinkwrap.json', join(config.get('root'), 'build', 'kibana', 'npm-shrinkwrap.json')]);
|
||||
|
||||
// restore the dev shrinkwrap
|
||||
exec('mv', ['npm-shrinkwrap.dev', 'npm-shrinkwrap.json']);
|
||||
});
|
||||
|
||||
grunt.registerTask('_build:shrinkwrap:cleanup', function () {
|
||||
if (newFiles.length) exec('rm', newFiles.splice(0));
|
||||
});
|
||||
};
|
|
@ -1,9 +1,9 @@
|
|||
module.exports = function (grunt) {
|
||||
|
||||
var readline = require('readline');
|
||||
|
||||
// build, then zip and upload to s3
|
||||
grunt.registerTask('release', [
|
||||
'_build:shrinkwrap:ensureExists',
|
||||
'_release:confirmUpload',
|
||||
'_release:loadS3Config',
|
||||
'build',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue