From 56c447dc112a0fb3643f3a1538d7327c8e140552 Mon Sep 17 00:00:00 2001 From: Thomas Jung Date: Mon, 10 Aug 2026 22:58:31 -0400 Subject: [PATCH] fix(ci): drop build:island-manifest from postbuild:apps guard suite #1604 prepended the build-artifact step build:island-manifest to postbuild:apps, but that target is invoked directly in CI (unit-tests.yml, deploy.yml) as a read-only static-guard suite with no prior vite build. The Vite manifest is therefore absent and build-island-manifest.cjs hard-exits 1, reddening every unit-tests run on main and PRs. build:all already runs build:island-manifest explicitly after build:apps, and scripts/deploy-mta.cjs Step 2.5 guards that shipped Hugo baked hashed island paths, so removing the artifact step from the guard suite loses no coverage. Restores the pre-#1604 guards-only behavior. --- package.json | 2 +- scripts/build-island-manifest.cjs | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 96439303..ccd678fe 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "clean:island-bundles": "node scripts/clean-island-bundles.cjs", "build:apps": "npm run vendor:mediapipe && npm run vendor:imgly && npm run vendor:animegan && npm run clean:island-bundles && npm --prefix hugo-apps run build", "build:island-manifest": "node scripts/build-island-manifest.cjs", - "postbuild:apps": "npm run build:island-manifest && tsx scripts/check-build-collisions.ts && tsx scripts/check-icon-imports.ts && tsx scripts/check-island-ui5-imports.ts && tsx scripts/check-xs-app-mta.ts && tsx scripts/check-public-endpoints.ts && tsx scripts/check-srv-qa-cp-list.ts && tsx scripts/check-srv-qa-route-drift.ts && tsx scripts/check-srv-qa-dep-parity.ts && tsx scripts/check-slug-lookups.ts && tsx scripts/check-ui5-controller-extensions.ts && tsx scripts/check-kg-meta-formatters-mirror.ts && tsx scripts/check-csrf-clients.ts && npm run check:graphql-breaking", + "postbuild:apps": "tsx scripts/check-build-collisions.ts && tsx scripts/check-icon-imports.ts && tsx scripts/check-island-ui5-imports.ts && tsx scripts/check-xs-app-mta.ts && tsx scripts/check-public-endpoints.ts && tsx scripts/check-srv-qa-cp-list.ts && tsx scripts/check-srv-qa-route-drift.ts && tsx scripts/check-srv-qa-dep-parity.ts && tsx scripts/check-slug-lookups.ts && tsx scripts/check-ui5-controller-extensions.ts && tsx scripts/check-kg-meta-formatters-mirror.ts && tsx scripts/check-csrf-clients.ts && npm run check:graphql-breaking", "build:explore-manifest": "tsx scripts/build-explore-manifest.ts", "build:explore": "npm --prefix app/explore install --no-audit --no-fund && npm --prefix app/explore run build && npm run build:explore-manifest", "build:analytics-explorer": "npm --prefix app/analytics-explorer install && npm --prefix app/analytics-explorer run build", diff --git a/scripts/build-island-manifest.cjs b/scripts/build-island-manifest.cjs index 8caeb957..ad89623a 100644 --- a/scripts/build-island-manifest.cjs +++ b/scripts/build-island-manifest.cjs @@ -15,8 +15,13 @@ // CAP-stable entries nav-dropdown/concepts-filter are emitted un-hashed and // resolve to their bare path either way). // -// Runs in `postbuild:apps` (package.json), right after `vite build` and well -// before `build:hugo`, so the data file exists when Hugo builds. +// Runs in `build:all` (package.json), right after `build:apps` (`vite build`) +// and well before `build:hugo`, so the data file exists when Hugo builds. It +// is deliberately NOT part of `postbuild:apps`: that target is a read-only +// static-guard suite CI invokes directly (unit-tests.yml, deploy.yml) with no +// prior `vite build`, so the Vite manifest would be absent and this step would +// hard-fail (#1604 regression). Deploy-time correctness of the baked manifest +// is instead guarded by `scripts/deploy-mta.cjs` Step 2.5. // // Exit codes: // 0 wrote the data file with >= 1 entry.