Repository navigation
ci: cost hygiene (concurrency, filters, retention) - #118
Conversation
Add cancel-in-progress concurrency on PR/push CI, run the CodeRabbit fallback cron once daily on weekdays, and retain release artifacts 7 days. Co-authored-by: Jonathan Borgwing <DevVig@users.noreply.github.com>
|
Warning Review limit reachedEnable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Next included review available in 59 minutes. View limit details
Comment |
There was a problem hiding this comment.
🟢 Approval recommended
The reviewer's examination surfaced no objective defects, with each workflow-YAML change checked and found sound.
No open issues 🎉
What changed in this PR
This PR applies GitHub Actions cost-hygiene changes to reduce wasted CI minutes and artifact storage. It cancels superseded PR/push runs via concurrency, reduces the CodeRabbit fallback review cron from hourly to once-daily on weekdays, and caps release artifact retention at 7 days. It is workflow-YAML only with no application/daemon code changes, consistent with the repo's tag-driven release pipeline.
Changes:
- Add
concurrency(group perworkflow+ref,cancel-in-progress: true) toci.ymlandpr-title.ymlto cancel superseded runs. - Change CodeRabbit fallback schedule from
59 * * * *(hourly) to59 0 * * 1-5(weekday daily at 00:59 UTC), with updated explanatory comments. - Set
retention-days: 7on all fouractions/upload-artifactsteps inrelease.yml.
| File | Description |
|---|---|
.github/workflows/ci.yml |
Adds concurrency block to cancel superseded CI runs on PR/push. |
.github/workflows/pr-title.yml |
Adds concurrency block to cancel superseded PR-title lint runs. |
.github/workflows/coderabbit-fallback-review.yml |
Reduces fallback review cron from hourly to weekday-daily; updates comments. |
.github/workflows/release.yml |
Caps artifact retention at 7 days on all four upload-artifact steps. |
Review effort: Balanced
What
Cost hygiene for GitHub Actions: cancel superseded PR/push CI, run the CodeRabbit fallback cron once daily on weekdays, and cap release artifact retention at 7 days.
Why
Avoid overlapping CI runs, hourly fallback sweeps, and the default 90-day artifact retention on Release uploads.
How was this tested?
PyYAML parse of the changed workflow files. No application code.
Applied
group: ${{ github.workflow }}-${{ github.ref }},cancel-in-progress: true):.github/workflows/ci.yml.github/workflows/pr-title.yml59 * * * *; now once daily on weekdays59 0 * * 1-5(00:59 UTC) in.github/workflows/coderabbit-fallback-review.yml.retention-days: 7on all fouractions/upload-artifactsteps in.github/workflows/release.yml(binaries-*,ui-*,release-assets-*,formula-*). Same-run download/publish is unaffected; GitHub Release assets are separate.Skipped (required status checks)
Did not add docs-only
paths-ignore(**/*.md,docs/**) to.github/workflows/ci.yml. That workflow provides the required checks onmain(ruleset Protect main,CONTRIBUTING.md,docs/governance.md):rust (ubuntu-latest)rust (macos-latest)uiSkipping it on docs-only PRs would leave those required checks unreported.
Judgment calls (left unchanged)
paths-ignoreon.github/workflows/pr-title.yml: it lints PR titles, not files. Docs-only PRs still need the conventional-title gate (advisory per governance, but documented as the title enforcer)..github/workflows/release.ymlor.github/workflows/finalize-release.yml(deploy/release/publish).group: coderabbit-fallback-review,cancel-in-progress: false); that workflow is cron/review, not PR/push CI.adaptersjob out ofci.ymlsolely to attachpaths-ignore.paths-ignoreon the CodeRabbit fallback workflow (not a test/lint workflow; also runs on schedule and issue comments).Checklist
mb-protocolanddocs/protocol.md