Preserve prebuilt dist during release gate (#210)
## Summary - serve the release workflow's already-built `dist` from the production Playwright gate - preserve the existing auto-build behavior for standalone local production tests - keep the pre/post `dist` inventory guard strict and unchanged ## Root cause The release workflow built and fingerprinted `dist`, but Playwright then launched `preview:prod`, which ran a second Vite build. Timestamped build metadata changed hashed chunks and caused the integrity comparison to fail after all 26 production browser tests had passed. ## Verification - production Playwright gate: 26/26 passed - pre/post inventory: 735 files, zero changes - release package validation: 735 files passed - ESLint passed - Prettier passed - release package unit tests: 7/7 passed - workflow YAML parsed successfully - no test files changed Co-authored-by: Jeppe Bundgaard <jb@truckwash.dk>
This commit is contained in:
co-authored by
Jeppe Bundgaard
parent
de3f067372
commit
0692cb3aea
@@ -111,6 +111,7 @@ jobs:
|
||||
if: steps.branch-head.outputs.current == 'true'
|
||||
run: npm run test:e2e:prod
|
||||
env:
|
||||
PLAYWRIGHT_PROD_PREBUILT: "1"
|
||||
PLAYWRIGHT_PROD_WEBKIT: "0"
|
||||
|
||||
- name: Confirm production gate did not mutate dist
|
||||
|
||||
@@ -3,6 +3,11 @@ import { defineConfig, devices } from "@playwright/test";
|
||||
|
||||
const baseURL = "http://127.0.0.1:4173";
|
||||
const isCI = !!process.env.CI;
|
||||
const usePrebuiltDist = ["1", "true"].includes(
|
||||
String(process.env.PLAYWRIGHT_PROD_PREBUILT || "")
|
||||
.trim()
|
||||
.toLowerCase()
|
||||
);
|
||||
|
||||
process.env.PLAYWRIGHT_BASE_URL = baseURL;
|
||||
|
||||
@@ -73,7 +78,7 @@ export default defineConfig({
|
||||
video: "retain-on-failure",
|
||||
},
|
||||
webServer: {
|
||||
command: "npm run preview:prod",
|
||||
command: usePrebuiltDist ? "npm run preview -- --host 127.0.0.1 --port 4173" : "npm run preview:prod",
|
||||
url: baseURL,
|
||||
timeout: 240_000,
|
||||
reuseExistingServer: !isCI,
|
||||
|
||||
Reference in New Issue
Block a user