You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(ci): cut PR wall-clock — dedupe dogfood out of Test Core, shard the gate 2-way, cache lint's build (#3622)
* chore(ci): cut PR wall-clock ~9.5min → ~5-6min — dedupe dogfood, shard it, cache lint's build
Three data-driven fixes from job-level timing of recent PR runs:
1. Test Core re-ran the whole ~7.5-minute dogfood suite that the dedicated
Dogfood job was already running in parallel (both gate on the same `core`
filter). Exclude @objectstack/dogfood from both the PR --affected run and
the push run; the Dogfood job remains the sole (and unconditional) runner
of the suite. Verified locally: turbo unions inclusive filters and then
subtracts `!` negations, so `--affected --filter=!@objectstack/dogfood`
is exactly "affected minus dogfood" (140 → 137 tasks, nothing else lost).
2. The Dogfood job itself was the workflow's longest pole (7m34s for the
~60-file suite on one 4-vCPU runner). Shard it 2-way with vitest's
deterministic file-level --shard, passed through turbo (pass-through args
are part of the turbo task hash, so each shard caches independently —
verified: distinct hashes per shard). The `objectstack verify` CLI step is
shard-independent and runs on shard 1 only. NOTE: if branch protection
requires "Dogfood Regression Gate", the required check must be renamed to
the two sharded names.
3. lint.yml's "TypeScript Type Check" job runs a full workspace build but was
the only build-running job with NO turbo cache step — it rebuilt everything
from scratch every run (4m38s observed, vs 51s for the same build in
ci.yml's cached Build Core). Add the same .turbo/cache step.
Also: lint.yml and codeql.yml had no concurrency group, so superseded runs of
both (they trigger on every PR sync) kept burning runners and delaying the
queue. Add the same cancel-in-progress policy ci.yml already documents.
Full-chain smoke: `turbo run test --filter=@objectstack/dogfood -- --shard=1/30`
runs green end-to-end (turbo → pnpm → vitest, 61 tasks OK).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ECTCrcCdZpCHw5zFSgcmGt
* chore: empty changeset — CI-only change, releases nothing
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ECTCrcCdZpCHw5zFSgcmGt
---------
Co-authored-by: Claude <noreply@anthropic.com>
CI-only: exclude the dogfood suite from Test Core (the dedicated Dogfood job runs it), shard the Dogfood gate 2-way, add the missing turbo cache to lint's typecheck job, and cancel superseded lint/CodeQL runs. Releases nothing.
0 commit comments