Repository navigation
ci: fast PR gate + nightly full verify — Verify job off PRs (CIX-1) - #380
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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
PR CI's Verify job takes ~36 min, ~32 of which is the serial-PGlite server vitest suite — it dwarfs every other job (shards run 3–6 min) and gates nothing the shards don't already exercise at merge-relevant speed. Board: OB CIX-1.
Solution
Split Verify: a fast Gate (typecheck · lint · unit) job runs on PRs (secrets guard, eslint-rules tests, check:gen, all-package typecheck, all-package lint, sdk/ui/app/mcp unit suites via an explicit
--filterallowlist, reusing the byte-identical libs cache), and a new nightly-verify workflow (06:30 UTC cron +workflow_dispatch) runs the fullpnpm run verifyincluding the server suite, maintaining a pinned "Nightly verify failing" issue (create/pin on failure, comment/unpin/close on recovery; pin mutations non-fatal). All other CI jobs are byte-identical. Alternative considered: sharding the server vitest suite on PRs — deferred; nightly + on-demand dispatch covers it without PR cost. New deps: none.Before / After
workflow_dispatch(alert issue on failure)Test procedure
pnpm run test:eslint-rules && pnpm run typecheck && pnpm run lint— pass (worktree, foreground)bash scripts/check-no-private-keys.sh && pnpm run check:gen && pnpm --filter @book.dev/sdk --filter @book.dev/ui --filter @book.dev/app --filter @book.dev/mcp --if-present run test— passbash -nof the embedded alert script + 9 mocked issue-lifecycle cases — passgh workflow run nightly-verify.ymland confirm the full run + (on a forced failure branch, optional) the alert issue path.Operational notes
packages/sdk/tsconfig.build.json,packages/ui/vite.viewer.config.js,packages/ui/scripts/**; a PR breaking only those passes the Gate and is caught nightly. Fixing requires changing the key in all 6 jobs at once — separate PR if wanted.verifyjob; no state/migration involved.Verify status: gate-equivalent commands green locally (full 36-min verify unchanged, runs nightly) · Reviews cleared: code (Quinn — FINDINGS F1–F3+N3 applied via pre-endorsed fixes @ 125cbe6)
🤖 Generated with Claude Code