Repository navigation
ci: fewer-redundant-runs - #903
Conversation
Agent-Team: linux Worker: codex
PM note: how this PR will be handledWhat it is for: ci: fewer-redundant-runs Rules that apply: touches CI or workflows; changes agent rules or guides. Things to watch (checked by rule):
What happens next:
A living status comment below is kept current. Nothing here is a merge decision. |
Where this PR standsStage: Waiting for the maintainer What the PM needs before approving (ticks as it is met; the full CI runs only at the end, after the reviews are clean):
Rules that apply: touches CI or workflows; changes agent rules or guides. Reviews at the current commit (
2 earlier reviews are for older commits and will be redone. Latest fixes comment: https://github.com/fizzyedit/work/issues/460#issuecomment-6444628978 (6 findings answered) Updated 2026-10-27 16:28 UTC by the PM. This comment is edited in place. |
Agent-Team: linux Worker: claude
Merge origin/main (the draft/ready change landed in #903), taking its docs/AGENT_WORK.md wording. test-ci-ok.py no longer splits the workflow on fixed indents and blank lines, and drops the unused RESULTS variable. Agent-Team: linux Worker: claude Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Part of fizzyedit/work#103
Rework: work#493
Goal
Part of fizzyedit/work#103: draft pushes run only Changes; ready PRs retain required CI.
What changed and why
main already has the draft short-circuit in
changes, theready_for_reviewtrigger and the compiler-cache comment. This PR adds two things:ci-okis skipped on drafts (one runner fewer per draft push), and outside a draft every job selected by the code or SDL filter must reportsuccess, so an unexpected skip, failure or cancellation fails the required check. It also clarifies compiler caching in web.yml and the local gates, cross-review, CI-at-ready order in the worker docs.How it was verified
Formatting, lint, native build, check-web and test-sdk-version passed (gate output below). Hosted draft and ready behaviour is only visible in CI.
Before, measured from
gh run listand the jobs API (actions/runs/<id>/jobs) for the last 10 merged PRs (#887 #888 #889 #890 #893 #895 #899 #901 #906 #913), CI workflow only, counting jobs that ran (not skipped) and Zig setup steps that ran:changes+ci-ok, 2 jobs each)Per PR (runs/jobs/zig): #887 1/10/8; #888 7/62/48; #889 5/34/23; #890 2/12/8; #893 2/12/8; #895 2/12/8; #899 3/14/8; #901 2/12/8; #906 2/12/8; #913 2/12/8. A full run costs 8 Zig setups and a draft run none, so main already avoids Zig on drafts.
After: this PR removes
ci-okfrom each draft-push run (11 jobs of 192 in this sample, about 6%); Zig setups do not change by themselves. Measure it the same way over the first 10 PRs merged after it lands: draft-push runs should show 1 job, and full runs 8 Zig setups, fewer where the compiler cache hits. The largest cost in the sample is #888's 6 full runs for 6 pushes, which this PR does not touch.Not done / follow-ups
Hosted draft to ready behaviour and cache hits need a real CI run. The maintainer's explicit yes is required before merging: this changes how
ci-ok, a required check, behaves on drafts. The wrap-width nits and the ci-ok comment finding were not in the ruling and are left.Changes (4 files, +30/-23)
Gates: 6 of 6 passed
scripts/check-fmt.sh(exit 0)scripts/zb build --summary all(exit 0)scripts/zb build test --summary all(exit 0)scripts/zb build test-integration --summary all(exit 0)scripts/zb build check-web --summary all(exit 0)scripts/zb build test-sdk-version --summary all(exit 0)