Repository navigation
CI: 3-minute pull-request check, slow suites on schedules - #271
Merged
Merged
Conversation
… schedules Quality now runs five parallel jobs with cached node_modules. Unit tests use Vitest's vmThreads pool (95s to 43s on 2 CPUs), and the @smoke set keeps boot, sign-in, every page render and the first-run tour; tool journeys stay nightly. The full-stack database gate, live providers, the agentic suite and the model matrix no longer run on pull requests. Schema PRs run pgTAP on Postgres alone. Staging E2E, the production canary and the preview note stop starting runs that only skip, and docs.yml folds into Quality. npm run verify runs in two lanes (231s to 98s locally). Prerender gets its own Vite cache so a build no longer breaks a running dev server's lazy routes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed.
Note 🎁 Summarized by CodeRabbit Free
Comment |
# Conflicts: # docs/testing.md
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 pull-request check should finish in about 3 minutes, and CI starts roughly a third as many runs a month. Everything slow, paid or full-stack still runs, but on a schedule or on demand.
CI could not run while Actions billing is blocked, so every number below is local. The CI estimates come from timing each step pinned to 2 CPUs (
taskset -c 0,1), the size of a private-repo runner. That proxy is close: on 2 CPUs the old smoke set took 147s and the old unit run 95s, against 169s and 155s measured on CI.Pull-request check
What changed:
node_modulesis restored from a lockfile-keyed cache (.github/actions/node-deps), sonpm ciruns only on a miss. The edge job installs no npm packages; I ran the edge tests in a clean export with nonode_modulesto confirm (498 passed).docs.ymlis gone and Quality runs on every PR: only 8 of 329 Docs runs in the last 30 days were docs-only pushes.vmThreadspool. Each file still gets a fresh jsdom context, but workers are reused: 95s to 43s on 2 CPUs.src/test/setup.tsaddscrypto.randomUUIDand the web streams that a bare VM context lacks. All 756 tests pass.browser-nightly.yml, which runs every test.supabase/tests/, the seed,config.toml, the db scripts or the gate rundb-gate.sh --db-only. That now starts Postgres alone (supabase db start), and the same 545 pgTAP tests and concurrency scripts pass: 67s to 35s locally, and one image pull on CI instead of a dozen. The full gate (full-stack journeys on desktop and mobile) runs daily and on dispatch. It no longer runs on pushes to main.Runs per month (last 30 days, from the Actions API)
Before: 3,742. After: about 1,240, and fewer once agents stop pushing the same branch several times.
workflow_runnow hasbranches: [main]debate-navigatordeployment of that commit, then checks the site. I ran the poll against the real API for the last two main commits.deployment_statuscan't be filtered at the trigger, which is where the skipped runs came from.opened/reopenedonly; it posts once anyway)Billed minutes drop too, with two exceptions. The canary now bills its wait for Vercel, about 2 to 3 minutes per push to main, where the old skipped runs billed nothing. Docs-only PRs (8 a month) now pay for a full Quality run.
Moved to nightly, weekly or manual
Every one also runs via
gh workflow run <file> --ref <branch>. AGENTS.md tells agents to do that when a change is squarely in that suite's area. The live keys now reach branch code only through a manual dispatch;docs/standards/security.mdrecords the narrower exposure.Local
npm run verify231s to 98s on the VPS.
scripts/verify.mjsruns two lanes, logs each step to.verify/npm-verify/, prints one line per step, and prints the tail of any failed step's log. A third lane was no faster and peaked about 6 GB above idle; two lanes peak at about 3.8 GB.test:swmoved toverify:fulland the nightly workflow.Running build and smoke side by side surfaced a real bug.
scripts/prerender.mjsstarts its own Vite server, which re-optimized dependencies in the sharednode_modules/.vite. A dev server running at the same time then failed to load lazy routes ("Unable to load this page" on Login, 5 failures). Prerender now uses its owncacheDir. With the fix, smoke passed while the build ran.Agent guidance
AGENTS.md: during the work, run only the focused check; run
npm run verifyonce at the final head; push once, batching review fixes; and dispatch a scheduled suite only when the change is in its area.docs/operations.md,docs/testing.mdand the README describe the new layout.Verified
npm run verifyat the final head: all 9 steps passed, 97.4s, memory peak +3.8 GB../.superset/db-gate.sh --db-only: 545 pgTAP tests and all db scripts passed, 35s; stack stopped afterwards.actionlinton every workflow: clean.npm run lint:repo(pinned actions,persist-credentials): clean.db-gate.test.tsandanthropic-only-guard.test.tsstill pass.Not verified: any of this on GitHub Actions. The 3-minute figure is an estimate until billing is restored. The one unknown is how long CI takes to pull the Postgres image for the schema job. The first push to main after merge is the real test of the canary's wait step: it should find the
debate-navigatordeployment within about 2 minutes. If Vercel ever skips a build for a main commit, that run waits 15 minutes and then fails instead of skipping.Not done, worth a look: the 2026-10-01 plan cut unit tests to 15 files, and there are 100 again. With
vmThreadsthey cost about 70s on CI, so I left them alone.🤖 Generated with Claude Code