From c4479395d58d9a43ea5fcad005f4c78ee235eba2 Mon Sep 17 00:00:00 2001 From: Ivan Malagon Date: Fri, 24 Mar 2017 12:07:16 +0100 Subject: [PATCH] Skipping specs generation --- Gruntfile.js | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index ad67838e7f..da71229321 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -11,6 +11,8 @@ var NPM_VERSION = '2.14 - 2.15'; var WEBPACK_NODE_VERSION = '6 - 7'; var WEBPACK_NPM_VERSION = '2.14 - 3'; +var DEVELOPMENT = 'development'; + var SHRINKWRAP_MODULES_TO_VALIDATE = [ 'backbone', 'camshaft-reference', @@ -41,6 +43,10 @@ function logVersionsError (err, requiredNodeVersion, requiredNpmVersion) { } } +function isRunningTask (taskName, grunt) { + return grunt.cli.tasks.indexOf(taskName) > -1; +} + /** * CartoDB UI assets generation */ @@ -49,6 +55,16 @@ module.exports = function(grunt) { if (timer) timer.init(grunt); + var environment = grunt.option('environment') || DEVELOPMENT; + grunt.log.writeln('Environment: ' + environment); + + var runningTasks = grunt.cli.tasks; + if (runningTasks.length === 0) { + grunt.log.writeln('Running default task.'); + } else { + grunt.log.writeln('Running tasks: ' + runningTasks); + } + function preFlight(requiredNodeVersion, requiredNpmVersion, logFn) { function checkVersion(cmd, versionRange, name, logFn) { grunt.log.writeln('Required ' + name + ' version: ' + versionRange); @@ -93,7 +109,8 @@ module.exports = function(grunt) { var ASSETS_DIR = './public/assets/<%= pkg.version %>'; // use grunt --environment production - var env = './config/grunt_' + (grunt.option('environment') || 'development') + '.json'; + var env = './config/grunt_' + environment + '.json'; + grunt.log.writeln('env: ' + env); if (grunt.file.exists(env)) { env = grunt.file.readJSON(env) } else { @@ -204,8 +221,8 @@ module.exports = function(grunt) { }); grunt.registerTask('check_release', "checks release can be done", function() { - if (env === 'development') { - grunt.log.error("you can't release running development enviorment"); + if (environment === DEVELOPMENT) { + grunt.log.error("you can't release running development environment"); return false; } grunt.log.ok("************************************************"); @@ -298,7 +315,7 @@ module.exports = function(grunt) { 'copy:js_test_jasmine_client_cartodb3' ]); - grunt.registerTask('js', ['cdb', 'pre_client', 'browserify', 'concat:js', 'jst']); + grunt.registerTask('js', ['cdb', 'pre_client', 'run_browserify', 'concat:js', 'jst']); grunt.registerTask('pre_default', ['clean', 'config', 'js']); grunt.registerTask('test', '(CI env) Re-build JS files and run all tests. For manual testing use `grunt jasmine` directly', [ 'pre_default', @@ -335,7 +352,7 @@ module.exports = function(grunt) { .value()); grunt.registerTask('dev', 'Typical task for frontend development (watch JS/CSS changes)', [ 'setConfig:env.browserify_watch:true', - 'browserify_but_specs', + 'run_browserify', 'watch_but_specs']); grunt.registerTask('sourcemaps', @@ -357,9 +374,22 @@ module.exports = function(grunt) { grunt.task.run('watch'); }); - grunt.registerTask('browserify_but_specs', 'All browserify tasks except those that generate specs', function () { - delete grunt.config.data.browserify.affected_specs; - delete grunt.config.data.browserify['cartodb3-specs']; + grunt.registerTask('run_browserify', 'Browserify task with options', function (option) { + var skipSpecs = false; + + if (environment !== DEVELOPMENT) { + grunt.log.writeln('Skipping specs generation by browserify because not in development environment.'); + skipSpecs = true; + } else if (!isRunningTask('test', grunt)) { + grunt.log.writeln('Skipping specs generation by browserify because we are not running the `test` task.'); + skipSpecs = true; + } + + if (skipSpecs) { + delete grunt.config.data.browserify['test_specs_for_browserify_modules']; + delete grunt.config.data.browserify['cartodb3-specs']; + } + grunt.task.run('browserify'); });