feat(build): Make package tasks invoke their prerequisites

Have the package task invoke the cleanBuildDir (as well as
cleanPackageDir) and build tasks.  Remove the checkBuildDir
task as it is now redundant since a fresh build is done every
time.
This commit is contained in:
Christopher Allen
2022-09-22 16:47:26 +02:00
parent 6f37246da9
commit 1d462f2987
3 changed files with 25 additions and 50 deletions

View File

@@ -26,11 +26,15 @@ module.exports = {
// Main sequence targets. They already invoke prerequisites.
cleanBuildDir: buildTasks.cleanBuildDir,
cleanReleaseDir: packageTasks.cleanReleaseDir,
messages: buildTasks.messages,
tsc: buildTasks.tsc,
deps: buildTasks.deps,
minify: buildTasks.minify,
build: buildTasks.build,
package: packageTasks.package,
publish: releaseTasks.publish,
publishBeta: releaseTasks.publishBeta,
// Manually-invokable targets that invoke prerequisites.
prepare: buildTasks.prepare,
@@ -44,20 +48,16 @@ module.exports = {
// Legacy target, to be deleted.
checkin: buildTasks.checkin,
recompile: releaseTasks.recompile,
// TBD.
deployDemos: appengineTasks.deployDemos,
deployDemosBeta: appengineTasks.deployDemosBeta,
cleanReleaseDir: packageTasks.cleanReleaseDir,
gitSyncDevelop: gitTasks.syncDevelop,
gitSyncMaster: gitTasks.syncMaster,
gitCreateRC: gitTasks.createRC,
gitUpdateGithubPages: gitTasks.updateGithubPages,
package: packageTasks.package,
checkLicenses: licenseTasks.checkLicenses,
recompile: releaseTasks.recompile,
prepareDemos: appengineTasks.prepareDemos,
publish: releaseTasks.publish,
publishBeta: releaseTasks.publishBeta,
sortRequires: cleanupTasks.sortRequires,
};

View File

@@ -19,6 +19,7 @@ gulp.replace = require('gulp-replace');
var path = require('path');
var fs = require('fs');
var rimraf = require('rimraf');
var build = require('./build_tasks');
var {getPackageJson} = require('./helper_tasks');
var {BUILD_DIR, RELEASE_DIR, TYPINGS_BUILD_DIR} = require('./config');
@@ -53,32 +54,6 @@ function packageCommonJS(namespace, dependencies) {
});
};
// Sanity check that the BUILD_DIR directory exists, and that certain
// files are in it.
function checkBuildDir(done) {
// Check that directory exists.
if (!fs.existsSync(BUILD_DIR)) {
done(new Error(`The ${BUILD_DIR} directory does not exist. ` +
'Has packageTasks.build been run?'));
return;
}
// Check files built by buildTasks.build exist in BUILD_DIR.
for (const fileName of [
'blockly_compressed.js', // buildTasks.buildCompressed
'blocks_compressed.js', // buildTasks.buildBlocks
'javascript_compressed.js', // buildTasks.buildGenerators
'msg/js/en.js', // buildTaks.buildLangfiles
]) {
if (!fs.existsSync(`${BUILD_DIR}/${fileName}`)) {
done(new Error(
`Your ${BUILD_DIR} directory does not contain ${fileName}. ` +
'Has packageTasks.build been run? Try "npm run build".'));
return;
}
}
done();
}
/**
* This task copies the compressed files and their source maps into
* the release directory.
@@ -399,10 +374,14 @@ function cleanReleaseDir(done) {
/**
* This task prepares the files to be included in the NPM by copying
* them into the release directory.
*
* Prerequisite: build.
*/
const package = gulp.series(
checkBuildDir,
cleanReleaseDir,
gulp.parallel(
build.cleanBuildDir,
cleanReleaseDir),
build.build,
gulp.parallel(
packageIndex,
packageCompressed,
@@ -426,6 +405,7 @@ const package = gulp.series(
);
module.exports = {
// Main sequence targets. Each should invoke any immediate prerequisite(s).
cleanReleaseDir: cleanReleaseDir,
package: package,
};

View File

@@ -147,27 +147,18 @@ function updateBetaVersion(done) {
done();
}
// Build Blockly and prepare to check in the resulting built files.
const rebuildAll = gulp.series(
buildTasks.cleanBuildDir,
buildTasks.build,
buildTasks.checkin,
);
// Package and publish to npm.
// Rebuild, package and publish to npm.
const publish = gulp.series(
rebuildAll,
packageTasks.package,
packageTasks.package, // Does clean + build.
checkBranch,
checkReleaseDir,
loginAndPublish
);
// Publish a beta version of Blockly.
// Rebuild, package and publish a beta version of Blockly.
const publishBeta = gulp.series(
updateBetaVersion,
rebuildAll,
packageTasks.package,
packageTasks.package, // Does clean + build.
checkBranch,
checkReleaseDir,
loginAndPublishBeta
@@ -179,12 +170,16 @@ const recompileDevelop = gulp.series(
gitTasks.syncDevelop(),
gitTasks.createRebuildBranch,
updateVersionPrompt,
rebuildAll,
packageTasks.package, // Does clean + build.
buildTasks.checkin,
gitTasks.pushRebuildBranch
);
module.exports = {
// Main sequence targets. Each should invoke any immediate prerequisite(s).
publishBeta,
publish,
// Legacy target, to be deleted.
recompile: recompileDevelop,
publishBeta: publishBeta,
publish: publish
}
};