From 6c05b776e0c87ca825750ee67259c33a3ce10d0b Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 15 Mar 2023 22:39:40 -0400 Subject: chore: parallelize lint steps (#18214) --- tools/lint.js | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) (limited to 'tools/lint.js') diff --git a/tools/lint.js b/tools/lint.js index 3e62bb844..36ab12e84 100755 --- a/tools/lint.js +++ b/tools/lint.js @@ -23,18 +23,18 @@ if (Deno.args.includes("--rs")) { } if (!didLint) { - await dlint(); - // todo(dsherret): re-enable - // await dlintPreferPrimordials(); - console.log("copyright checker"); - await checkCopyright(); - await clippy(); + await Promise.all([ + dlint(), + // todo(dsherret): re-enable + // dlintPreferPrimordials(), + checkCopyright(), + clippy(), + ]); } async function dlint() { const configFile = join(ROOT_PATH, ".dlint.json"); const execPath = getPrebuiltToolPath("dlint"); - console.log("dlint"); const sourceFiles = await getSources(ROOT_PATH, [ "*.js", @@ -65,19 +65,26 @@ async function dlint() { } const chunks = splitToChunks(sourceFiles, `${execPath} run`.length); + const pending = []; for (const chunk of chunks) { const cmd = new Deno.Command(execPath, { cwd: ROOT_PATH, args: ["run", "--config=" + configFile, ...chunk], - stdout: "inherit", - stderr: "inherit", + // capture to not conflict with clippy output + stderr: "piped", }); - const { code } = await cmd.output(); - - if (code > 0) { - throw new Error("dlint failed"); - } + pending.push( + cmd.output().then(({ stderr, code }) => { + if (code > 0) { + const decoder = new TextDecoder(); + console.log("\n------ dlint ------"); + console.log(decoder.decode(stderr)); + throw new Error("dlint failed"); + } + }), + ); } + await Promise.all(pending); } // `prefer-primordials` has to apply only to files related to bootstrapping, @@ -85,8 +92,6 @@ async function dlint() { // is needed. async function dlintPreferPrimordials() { const execPath = getPrebuiltToolPath("dlint"); - console.log("prefer-primordials"); - const sourceFiles = await getSources(ROOT_PATH, [ "runtime/**/*.js", "ext/**/*.js", @@ -132,8 +137,6 @@ function splitToChunks(paths, initCmdLen) { } async function clippy() { - console.log("clippy"); - const currentBuildMode = buildMode(); const cmd = ["clippy", "--all-targets", "--all-features", "--locked"]; -- cgit v1.2.3