ci: plan every lane from one table and merge the gate workflows into ci.yml - #651
Merged
Conversation
Bundle ReportChanges will increase total bundle size by 17.81MB (57.79%) ⬆️
Affected Assets, Files, and Routes:view changes for bundle: site-server-esmAssets Changed:
App Routes Affected:
|
Exoridus
force-pushed
the
ci/redesign
branch
from
September 3, 2026 00:00
ba9e475 to
8a1466a
Compare
…ci.yml The reusable `_ci-checks.yml` had grown to 18 jobs and 1400 lines, each job carrying its own copy of the checkout/pnpm/node/install block and its own hand-written `if:`, with a 120-line shell verdict re-deriving which of them had to have run. The same knowledge lived a second time in `scripts/lanes.ts` for the pre-push hook. `scripts/ci/lanes.ts` is now the one table: id, stage, the effective lane that enables it, the local command, the CI command, and what the runner needs (browser, apt packages, Naga, the dist). `ci.yml` has one matrix job per stage and reads its entries from the `plan` job, which runs the table with plain node before any install. The pre-push hook runs the same table. A lane is added in one place and the workflow never names one. Stages: plan -> gates / test / build -> verify, site -> smoke -> verdict. `verdict` is the single required check; `scripts/ci/verdict.ts` fails any job the plan asked for that did not succeed, a skipped one included, which is the path-filter regression the shell loop used to catch. The checkout/pnpm/node/install block is a local composite action. Coverage is instrumented on pushes to main and next only. A pull request's unit lane runs the same tests without Istanbul, which takes the run's critical path from twelve minutes to about five. A change under src/ builds the site now: the catalog smoke drives the site job's artifact, and the old gate skipped the site job for an engine-only change while still requiring the smoke that needed it. The release dry run has its own area (release tooling and packed manifests) instead of riding on every engine change. `release.yml` no longer re-verifies the tagged commit. `trust` requires it to sit on main with a successful `verdict` and to match package.json; prepare and publish follow unchanged, and prepare uploads the site artifact Deploy Pages expects from a release run. Claude-Session: https://claude.ai/code/session_01YRLzcQ9ZasLdUWCtD9fDpM
Exoridus
enabled auto-merge (squash)
September 3, 2026 00:02
❌ 1 Tests Failed:
View the top 1 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
Exoridus
force-pushed
the
ci/redesign
branch
from
September 3, 2026 00:15
8a1466a to
214f671
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The reusable
_ci-checks.ymlhad grown to 18 jobs and 1400 lines, each job carrying its own copy of the checkout/pnpm/node/install block and its own hand-writtenif:, with a 120-line shell verdict re-deriving which of them had to have run. The same knowledge lived a second time inscripts/lanes.tsfor the pre-push hook.What changes
scripts/ci/lanes.tsis the one lane table: id, stage, the effective lane that enables it, the local command, the CI command, and what the runner needs (browser, apt packages, Naga, the dist).ci.ymlhas one matrix job per stage and reads its entries from theplanjob, which runs the table with plain node before any install. The pre-push hook runs the same table. A lane is added in one place; the workflow never names one.plan→gates/test/build→verify,site→smoke→verdict.verdictis the single required check;scripts/ci/verdict.tsfails any job the plan asked for that did not succeed, a skipped one included (the path-filter regression the shell loop used to catch). The checkout/pnpm/node/install block is a local composite action.main/nextonly. A pull request's unit lane runs the same tests without Istanbul, which takes the run's critical path from ~12 minutes to ~5.release.ymlno longer re-verifies the tagged commit.trustrequires it to sit onmainwith a successfulverdictand to matchpackage.json; prepare and publish follow unchanged, and prepare uploads the site artifact Deploy Pages expects from a release run.Fixed on the way
A change under
src/now builds the site: the catalog smoke drives the site job's artifact, and the old gate skipped the site job for an engine-only change while still requiring the smoke that needed it.Size
_ci-checks.yml(1427) +ci.yml(28) +release.yml(206) →ci.yml(~270) +release.yml(~160) +actions/setup(~60) +lanes.ts/verdict.ts.Follow-ups outside the repo (after merge)
checks / Required CI→verdict; includenext.next.https://claude.ai/code/session_01YRLzcQ9ZasLdUWCtD9fDpM