ci(web): Phase P6 — vite build + headless E2E gate on every trunk merge (#1445) (#1454)
ci/woodpecker/push/publish Pipeline was successful

This commit was merged in pull request #1454.
This commit is contained in:
2026-08-27 15:26:10 +00:00
parent b5ee692843
commit e605c83b27
19 changed files with 592 additions and 120 deletions
+5 -4
View File
@@ -228,9 +228,10 @@ steps:
function assertStagesMirrorCi(stages, ci) {
const canonical = Object.fromEntries(stages.map((stage) => [stage.name, stage.commands]));
// The complete mandatory set, in gate order. `quality-rails` is a
// canonical-only stage (RI-N4, QC-19): like `build`, it has no ci.yml
// mirror to match — its contract is asserted separately below.
// The complete mandatory set, in gate order. `quality-rails` is the one
// canonical-only stage (RI-N4, QC-19) with no ci.yml mirror to match — its
// contract is asserted separately below. `build` gained a ci.yml mirror in
// #1445 (P6) and is enforced with the other pnpm stages.
assert.deepEqual(
stages.map((stage) => stage.name),
[
@@ -257,7 +258,7 @@ function assertStagesMirrorCi(stages, ci) {
// pnpm stages: ci.yml commands minus `corepack enable` must be exactly the
// canonical stage commands.
for (const stepName of ['typecheck', 'lint', 'format']) {
for (const stepName of ['typecheck', 'lint', 'format', 'build']) {
assert.deepEqual(
ci.steps[stepName].commands.filter((command) => command !== 'corepack enable'),
canonical[stepName],