ci: reduce repeated verification overhead - #106
Merged
Merged
Conversation
6 tasks
5 tasks
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.
Problem
A README or demo update pushed to main currently triggers the full CI matrix. Sequential WordPress proof cases also stop the environment after each run, so the next case has to start it again. The WordPress job took 17m 57s in the v0.9.6 CI run, including 13m 45s for automated acceptance.
Closes #105.
Solution
These are observations from one before/after GitHub run, not a controlled attribution of every saved second. Runner variability and other step timings differ. Docs/demo routing avoids irrelevant work; its savings are separate and are not included in this comparison.
Use the existing conservative path classifier for main pushes as well as PRs, and keep WordPress running between sequential proof cases. Each proof still stages and installs its exact ZIP, runs its browser assertions, and writes its own receipt. The suite stops the environment at the end only if it was not already running before the suite began.
.github/workflows/ci.yml,scripts/ci-scope.mjsscripts/ci-scope.mjsdev/test/proof-real-wordpress.test.tsdev/test/proof-wordpress-lifecycle.ts.github/workflows/ci.yml,ci-scopejobDiff
+192 −21 · 6 files · no public API change
Simplified control flow:
The release workflow keeps its full checks. The existing workflow-level final cleanup remains in place.
Testing & verification
Reviewed revision:
57f15167ea5ec762dd1e5e5660a8334557d8aca7· Environment: local macOS checkout; GitHub Ubuntu CI passed on Node 20.19.0, 22.13.0 and 24.0.0.node --test dev/test/ci-scope.test.mjs: 9 passed.npx vitest run dev/test/proof-wordpress-lifecycle.test.ts dev/test/proof-control-setup.test.ts: 11 passed.npx --no-install vitest run dev/test/skill.test.ts dev/test/node-support.test.ts: 9 passed.npm run typecheck: passed.git diff --check: passed.Full CI run 34913012901 passed: all three Node versions, packed consumers, WordPress proof and final CI scope gate. WordPress retained all 9 tests across 2 files, including all 8 real-WordPress proof cases.
Not verified: the reduced route has not yet run as a live main-push event; its exact workflow shell was exercised locally. No repeated performance sample has been collected.
Risk / rollout
Retaining WordPress could expose state left by an earlier proof. Exact ZIP installation and all existing browser assertions remain the acceptance gate. Routing could skip required checks if classification were incomplete, so unknown changes select full checks, unavailable diffs fail, and the final CI scope job validates the selected route.
Detection: existing WordPress assertions, artifact receipts and the final CI scope check. Rollback: revert
57f1516and9e5694fto restore the previous lifecycle and routing. No package release or data migration is required.Authored by: Codex (GPT-6).