ci(web): Phase P6 — vite build + headless E2E gate on every trunk merge (#1445) (#1454)
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
This commit was merged in pull request #1454.
This commit is contained in:
@@ -21,10 +21,10 @@
|
||||
// lint | lint | pnpm lint
|
||||
// format | format | pnpm format:check
|
||||
// test | test | pnpm test
|
||||
// build | publish.yml build | pnpm build
|
||||
// build | build (#1445, P6) | pnpm build (also publish.yml build)
|
||||
// quality-rails | (canonical-only) | the TS quality-rails evaluator
|
||||
// | | (RI-N4, QC-19 monorepo subject). Like
|
||||
// | | `build`, this stage has no ci.yml
|
||||
// | | (RI-N4, QC-19 monorepo subject).
|
||||
// | | The one stage with no ci.yml
|
||||
// | | mirror; it is implemented by
|
||||
// | | importing the evaluator CLI rather
|
||||
// | | than duplicating its presence logic.
|
||||
@@ -106,8 +106,8 @@ export const STAGES = [
|
||||
{
|
||||
// RI-N4 (QC-19, card RI-3-002): the typed quality-rails evaluator, invoked
|
||||
// as the implementation of the check it owns instead of a duplicated
|
||||
// presence loop here. Canonical-only stage (no ci.yml mirror — same shape
|
||||
// as `build`); runs AFTER build so the evaluator's dist/ exists. Subject
|
||||
// presence loop here. Canonical-only stage (no ci.yml mirror; `build`
|
||||
// gained one in #1445); runs AFTER build so the evaluator's dist/ exists. Subject
|
||||
// is this repository (`.` → monorepo subject kind, per-subject check set).
|
||||
name: 'quality-rails',
|
||||
commands: ['node packages/quality-rails/dist/cli.js quality-rails evaluate --project .'],
|
||||
|
||||
@@ -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],
|
||||
|
||||
Reference in New Issue
Block a user