From e66809fa35c8a3af45dfbcfce51948608a37e5a9 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 26 Jul 2026 04:27:20 -0400 Subject: [PATCH] ci: guard historical npm lock checks (#114073) --- .github/workflows/ci.yml | 9 ++++++++- test/scripts/ci-workflow-guards.test.ts | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 916ac90103d6..3645d61abc3b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2199,7 +2199,14 @@ jobs: pnpm check:import-cycles ;; npm-lock) - pnpm deps:npm-lock:check + if has_package_script "deps:npm-lock:check"; then + pnpm deps:npm-lock:check + elif [[ "$HISTORICAL_TARGET" != "true" ]]; then + echo "Current CI targets must provide the deps:npm-lock:check package script." >&2 + exit 1 + else + echo "[skip] historical target predates the transient npm lock contract" + fi ;; bundled-channel-config-metadata) pnpm check:bundled-channel-config-metadata diff --git a/test/scripts/ci-workflow-guards.test.ts b/test/scripts/ci-workflow-guards.test.ts index 6f2fbe1cb51d..b9481e47e142 100644 --- a/test/scripts/ci-workflow-guards.test.ts +++ b/test/scripts/ci-workflow-guards.test.ts @@ -4162,6 +4162,13 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}" ); expect(checkShard.run).toContain("pnpm tsgo:scripts"); expect(checkShard.run).toContain('elif [[ "$HISTORICAL_TARGET" != "true" ]]'); + expect(checkShard.run).toContain('has_package_script "deps:npm-lock:check"'); + expect(checkShard.run).toContain( + "Current CI targets must provide the deps:npm-lock:check package script.", + ); + expect(checkShard.run).toContain( + "[skip] historical target predates the transient npm lock contract", + ); expect(checkShard.run).toContain('has_package_script "deadcode:dependencies"'); expect(checkShard.run).toContain('has_package_script "deadcode:unused-files"'); expect(checkShard.run).toContain('has_package_script "deadcode:exports"');