diff --git a/gulpfile.js b/gulpfile.js index f8bbbca6b..39f161494 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -21,29 +21,39 @@ const releaseTasks = require('./scripts/gulpfiles/release_tasks'); const cleanupTasks = require('./scripts/gulpfiles/cleanup_tasks'); module.exports = { + // Default target if gulp invoked without specifying. + default: buildTasks.build, + + // Main sequence targets. They already invoke prerequisites. + cleanBuildDir: buildTasks.cleanBuildDir, + messages: buildTasks.messages, + tsc: buildTasks.tsc, + deps: buildTasks.deps, + minify: buildTasks.minify, + build: buildTasks.build, + + // Manually-invokable targets that invoke prerequisites. + prepare: buildTasks.prepare, + format: buildTasks.format, + generate: buildTasks.generate, + clean: gulp.parallel(buildTasks.cleanBuildDir, packageTasks.cleanReleaseDir), + buildAdvancedCompilationTest: buildTasks.buildAdvancedCompilationTest, + + // Targets intended only for invocation by scripts; may omit prerequisites. + onlyBuildAdvancedCompilationTest: buildTasks.onlyBuildAdvancedCompilationTest, + + // Legacy target, to be deleted. + checkin: buildTasks.checkin, + + // TBD. deployDemos: appengineTasks.deployDemos, deployDemosBeta: appengineTasks.deployDemosBeta, - default: buildTasks.build, - generateLangfiles: buildTasks.generateLangfiles, - build: buildTasks.build, - buildDeps: buildTasks.deps, - buildLangfiles: buildTasks.langfiles, - buildCompiled: buildTasks.compiled, - buildAdvancedCompilationTest: buildTasks.advancedCompilationTest, - buildJavaScript: buildTasks.javaScript, - buildJavaScriptAndDeps: buildTasks.javaScriptAndDeps, - checkin: gulp.parallel(buildTasks.checkinBuilt), - checkinBuilt: buildTasks.checkinBuilt, - clangFormat: buildTasks.format, - clean: gulp.parallel(buildTasks.cleanBuildDir, packageTasks.cleanReleaseDir), - cleanBuildDir: buildTasks.cleanBuildDir, cleanReleaseDir: packageTasks.cleanReleaseDir, gitSyncDevelop: gitTasks.syncDevelop, gitSyncMaster: gitTasks.syncMaster, gitCreateRC: gitTasks.createRC, gitUpdateGithubPages: gitTasks.updateGithubPages, package: packageTasks.package, - prepare: buildTasks.prepare, checkLicenses: licenseTasks.checkLicenses, recompile: releaseTasks.recompile, prepareDemos: appengineTasks.prepareDemos, diff --git a/package.json b/package.json index 8a965a1f8..fca7b345a 100644 --- a/package.json +++ b/package.json @@ -32,15 +32,15 @@ "clean:build": "gulp cleanBuildDir", "clean:release": "gulp cleanReleaseDir", "checkin": "gulp checkin", - "checkin:built": "gulp checkinBuilt", "deployDemos": "gulp deployDemos", "deployDemos:beta": "gulp deployDemosBeta", - "format": "gulp clangFormat", + "format": "gulp format", "format:sortrequires": "gulp sortRequires", "generate:langfiles": "gulp generateLangfiles", "license": "gulp checkLicenses", "lint": "eslint .", "lint:fix": "eslint . --fix", + "only:compile:advanced": "gulp onlyBuildAdvancedCompilationTest --debug", "package": "gulp package", "prepare": "gulp prepare", "prepareDemos": "gulp prepareDemos", diff --git a/scripts/gulpfiles/build_tasks.js b/scripts/gulpfiles/build_tasks.js index 8f0cecfeb..e764dd120 100644 --- a/scripts/gulpfiles/build_tasks.js +++ b/scripts/gulpfiles/build_tasks.js @@ -300,15 +300,12 @@ function prepare(done) { done(); return; } - return buildJavaScriptAndDeps(done); + return exports.deps(done); } -const buildJavaScriptAndDeps = gulp.series(buildJavaScript, buildDeps); - /** * Builds Blockly as a JS program, by running tsc on all the files in - * the core directory. This must be run before buildDeps or - * buildCompiled. + * the core directory. */ function buildJavaScript(done) { execSync( @@ -323,6 +320,8 @@ function buildJavaScript(done) { * * Also updates TEST_DEPS_FILE (deps.mocha.js), used by the mocha test * suite. + * + * Prerequisite: buildJavaScript. */ function buildDeps(done) { const roots = [ @@ -639,6 +638,8 @@ function compile(options) { * blockly_compressed.js, blocks_compressed.js, etc. * * The deps.js file must be up-to-date. + * + * Prerequisite: buildDeps. */ function buildCompiled() { // Get chunking. @@ -673,6 +674,8 @@ function buildCompiled() { /** * This task builds Blockly core, blocks and generators together and uses * closure compiler's ADVANCED_COMPILATION mode. + * + * Prerequisite: buildDeps. */ function buildAdvancedCompilationTest() { const srcs = [ @@ -701,26 +704,11 @@ function buildAdvancedCompilationTest() { .pipe(gulp.dest('./tests/compile/')); } -/** - * This task builds all of Blockly: - * blockly_compressed.js - * blocks_compressed.js - * javascript_compressed.js - * python_compressed.js - * php_compressed.js - * lua_compressed.js - * dart_compressed.js - * msg/json/*.js - * test/deps*.js - */ -const build = gulp.parallel( - gulp.series(buildJavaScript, buildDeps, buildCompiled), - buildLangfiles, - ); - /** * This task copies built files from BUILD_DIR back to the repository * so they can be committed to git. + * + * Prerequisite: buildCompiled, buildLangfiles. */ function checkinBuilt() { return gulp.src([ @@ -753,17 +741,23 @@ function format() { .pipe(gulp.dest('.')); } -module.exports = { - prepare: prepare, - build: build, - javaScriptAndDeps: buildJavaScriptAndDeps, - javaScript: buildJavaScript, - deps: buildDeps, - generateLangfiles: generateLangfiles, - langfiles: buildLangfiles, - compiled: buildCompiled, - format: format, - checkinBuilt: checkinBuilt, - cleanBuildDir: cleanBuildDir, - advancedCompilationTest: buildAdvancedCompilationTest, -} +// Main sequence targets. Each should invoke any immediate prerequisite(s). +exports.cleanBuildDir = cleanBuildDir; +exports.messages = buildLangfiles; +exports.tsc = buildJavaScript; +exports.deps = gulp.series(exports.tsc, buildDeps); +exports.minify = gulp.series(exports.deps, buildCompiled); +exports.build = gulp.parallel(exports.minify, exports.messages); + +// Manually-invokable targets, with prequisites where required. +exports.prepare = prepare; +exports.format = format; +exports.generate = generateLangfiles; +exports.buildAdvancedCompilationTest = + gulp.series(exports.deps, buildAdvancedCompilationTest); + +// Targets intended only for invocation by scripts; may omit prerequisites. +exports.onlyBuildAdvancedCompilationTest = buildAdvancedCompilationTest; + +// Legacy target, to be deleted. +exports.checkin = gulp.series(exports.build, checkinBuilt); diff --git a/scripts/gulpfiles/git_tasks.js b/scripts/gulpfiles/git_tasks.js index bfc28df4c..06268ee61 100644 --- a/scripts/gulpfiles/git_tasks.js +++ b/scripts/gulpfiles/git_tasks.js @@ -105,7 +105,7 @@ const updateGithubPages = gulp.series( }, buildTasks.cleanBuildDir, buildTasks.build, - buildTasks.checkinBuilt, + buildTasks.checkin, function(done) { execSync('git commit -am "Rebuild"', { stdio: 'inherit' }); execSync('git push ' + upstream_url + ' gh-pages --force', { stdio: 'inherit' }); diff --git a/scripts/gulpfiles/release_tasks.js b/scripts/gulpfiles/release_tasks.js index 2841ad05e..7be0bd9fd 100644 --- a/scripts/gulpfiles/release_tasks.js +++ b/scripts/gulpfiles/release_tasks.js @@ -151,7 +151,7 @@ function updateBetaVersion(done) { const rebuildAll = gulp.series( buildTasks.cleanBuildDir, buildTasks.build, - buildTasks.checkinBuilt, + buildTasks.checkin, ); // Package and publish to npm. diff --git a/tests/run_all_tests.sh b/tests/run_all_tests.sh index 36ae667b7..7823aa3fa 100755 --- a/tests/run_all_tests.sh +++ b/tests/run_all_tests.sh @@ -77,7 +77,7 @@ run_test_command "package" "npm run package" run_test_command "node" "./node_modules/.bin/mocha tests/node --config tests/node/.mocharc.js" # Attempt advanced compilation of a Blockly app. -run_test_command "advanced_compile" "npm run test:compile:advanced" +run_test_command "advanced_compile" "npm run only:compile:advanced" # End of tests. popd