ci: add job timeout caps + commitlint concurrency - #442
Conversation
No job in ci.yml set timeout-minutes, so a hung job inherits GitHub's 6h ceiling — one June run already burned 191 min. Add per-job caps sized above observed p95: fmt/dogfood/cargo-deny/minimal-check/ci-success 10, clippy 30, test 40, build-release-amd64/arm64 45, release 30 commitlint had no concurrency: stacked PR-push runs all ran to completion. Add cancel-in-progress + a 5-min cap. ci.yml already has correct concurrency (cancel non-main refs); unchanged. Source: org-wide Actions-minute audit (minimal = 2nd runner-minute consumer). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthrough
ChangesCI Workflow Timeout and Concurrency Controls
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
dogfood (uncached build-smoke compile) normally runs 10-12.6 min; the 10-min cap killed healthy runs. Size above observed max with headroom. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Root cause
No job in
ci.ymlsettimeout-minutes— a hung job inherits GitHub's 6h ceiling. One June run already burned 191 min. minimal is the org's 2nd-largest runner-minute consumer (~18.5k min/mo MTD), and CI is the bulk of it.commitlint.ymlhad noconcurrency— stacked PR-push runs all ran to completion.Fix
Per-job caps on all 10 ci.yml jobs (sized above observed p95):
commitlint:
cancel-in-progressconcurrency + 5-min cap.Unchanged
ci.ymlalready has correct concurrency (cancel-in-progresson non-main refs).Acceptance
Source: org-wide Actions-minute audit.
🤖 Generated with Claude Code
Summary by CodeRabbit