From 9a74c995bf4bbbd3213d805d69d66e5e6d1c5a10 Mon Sep 17 00:00:00 2001 From: kumavis Date: Tue, 1 Nov 2022 08:52:38 -1000 Subject: [PATCH] [LavaMoat] improve policy generation performance in dev workflow (#16338) * npm scripts - rename lavamoat:background to lavamoat:webapp * lavamoat - generate webapp policy - add devMode flag to run in node for speed * lavamoat - generate webapp policy - dont lint fences * lint fix --- development/generate-lavamoat-policies.js | 13 +++++++++++-- package.json | 8 ++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/development/generate-lavamoat-policies.js b/development/generate-lavamoat-policies.js index 4ac600636..a4004e0b8 100755 --- a/development/generate-lavamoat-policies.js +++ b/development/generate-lavamoat-policies.js @@ -11,7 +11,7 @@ start().catch((error) => { async function start() { const { - argv: { buildTypes, parallel }, + argv: { buildTypes, parallel, devMode }, } = yargs(hideBin(process.argv)).usage( '$0 [options]', 'Generate the LavaMoat policy file for one more more build types.', @@ -31,13 +31,22 @@ async function start() { description: 'Whether to generate policies in parallel.', type: 'boolean', }) + .option('devMode', { + alias: ['d'], + default: false, + demandOption: true, + description: + 'Whether to run the process under lavamoat (devMode=false) or node (devMode=true)', + type: 'boolean', + }) .strict(), ); + const buildCommand = devMode ? 'build:dev' : 'build'; await concurrently( (Array.isArray(buildTypes) ? buildTypes : [buildTypes]).map( (buildType) => ({ - command: `yarn build scripts:dist --policy-only --build-type=${buildType}`, + command: `yarn ${buildCommand} scripts:dist --policy-only --lint-fence-files=false --build-type=${buildType}`, env: { WRITE_AUTO_POLICY: 1, }, diff --git a/package.json b/package.json index fb074c675..8c4989411 100644 --- a/package.json +++ b/package.json @@ -73,10 +73,10 @@ "lavamoat:build": "lavamoat development/build/index.js --policy lavamoat/build-system/policy.json --policyOverride lavamoat/build-system/policy-override.json", "lavamoat:build:auto": "yarn lavamoat:build --writeAutoPolicy", "lavamoat:debug:build": "yarn lavamoat:build --writeAutoPolicyDebug --policydebug lavamoat/build-system/policy-debug.json", - "lavamoat:background:auto": "node ./development/generate-lavamoat-policies.js", - "lavamoat:background:auto:ci": "node ./development/generate-lavamoat-policies.js --parallel=false", - "lavamoat:auto": "yarn lavamoat:build:auto && yarn lavamoat:background:auto", - "lavamoat:auto:ci": "yarn lavamoat:build:auto && yarn lavamoat:background:auto:ci", + "lavamoat:webapp:auto": "node ./development/generate-lavamoat-policies.js --devMode=true", + "lavamoat:webapp:auto:ci": "node ./development/generate-lavamoat-policies.js --parallel=false", + "lavamoat:auto": "yarn lavamoat:build:auto && yarn lavamoat:webapp:auto", + "lavamoat:auto:ci": "yarn lavamoat:build:auto && yarn lavamoat:webapp:auto:ci", "ts-migration:enumerate": "ts-node development/ts-migration-dashboard/scripts/write-list-of-files-to-convert.ts", "ts-migration:dashboard:watch": "ts-node development/ts-migration-dashboard/scripts/build.ts --watch", "ts-migration:dashboard:build": "ts-node development/ts-migration-dashboard/scripts/build.ts",