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
ci: add concurrency blocks to 5 read-only workflows + drop dead master triggers (#379)
## Summary
Five workflows in this repo run on every PR push but lack a
\`concurrency:\` block. When a contributor force-pushes or rapid-pushes
to a PR branch, each new push spawns a fresh run while the previous one
keeps consuming a runner slot — they pile up and serialise rather than
the new run cancelling the stale one.
The repo already has the canonical pattern in \`codeql.yml\`,
\`governance.yml\`, \`hypatia-scan.yml\`, \`panic-attack.yml\`, and
\`scorecard-enforcer.yml\`:
\`\`\`yaml
concurrency:
group: \${{ github.workflow }}-\${{ github.ref }}
cancel-in-progress: true
\`\`\`
This PR applies the same pattern (with the standard \"read-only check
workflows\" comment) to the five workflows that were missing it:
- \`ci.yml\` — the main OCaml/Deno build job (the highest-leverage of
the five; runs on every PR)
- \`semgrep.yml\` — SAST
- \`stdlib-naming.yml\` — case-collision guard
- \`spark-theatre-gate.yml\` — reusable workflow caller
- \`workflow-linter.yml\` — workflow security linter
All five are read-only check workflows (no publish, no mutation), so
\`cancel-in-progress: true\` is always safe — the superseded run was
about to report a stale result anyway.
## Drive-by cleanup
Drop \`master\` from the branch triggers in \`semgrep.yml\` and
\`spark-theatre-gate.yml\`. The repo's default and only long-lived
branch is \`main\`; the \`master\` entries were dead config.
## Test plan
- [ ] CI: all 5 workflows continue to run as before on this PR
- [ ] Visual: each workflow's run page now shows a \"Cancelled\"
superseded run when a follow-up push lands
Refs estate CI hygiene audit 2026-05-26.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments