Skip to content

ci: cancel superseded workflow runs on PR pushes#581

Merged
claude-dataviking merged 1 commit into
mainfrom
audit/ci-concurrency
Jul 18, 2026
Merged

ci: cancel superseded workflow runs on PR pushes#581
claude-dataviking merged 1 commit into
mainfrom
audit/ci-concurrency

Conversation

@claude-dataviking

Copy link
Copy Markdown
Contributor

From the org CI-cost audit: cut wasted GitHub Actions runner minutes.

Every push/pull_request workflow that lacked a top-level concurrency: key now gets one:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}

cancel-in-progress is scoped to pull_request events only, so a superseded PR push cancels its in-flight run, while pushes to main and tag-triggered deploy/publish/release runs are never cancelled (they serialize instead of aborting).

Workflows changed: ci.yml, codeql.yml, dependency-review.yml, docker.yml, publish-test.yml.
Left untouched: auto-tag.yml and publish.yml (already define concurrency).

🤖 Generated with Claude Code

Add a top-level concurrency group (github.workflow + github.ref) to the
push/pull_request workflows that lacked one, cancelling in-progress runs
only for pull_request events. Reduces wasted runner minutes from
superseded PR pushes while staying safe for main/tag deploy paths.

Part of the org CI-cost audit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@claude-dataviking
claude-dataviking merged commit b6849fb into main Jul 18, 2026
21 checks passed
@claude-dataviking
claude-dataviking deleted the audit/ci-concurrency branch July 18, 2026 14:54
@claude-dataviking claude-dataviking added the semver:minor Bump minor version on merge label Jul 18, 2026
claude-dataviking added a commit that referenced this pull request Jul 18, 2026
#583)

PR #581 merged without a semver label, so its Auto Semver Tag run failed
(as designed). The recovery rerun — after labeling semver:minor — got as
far as pushing the bump commit, but the rerun replays the original event
payload: its checkout pinned main at PR #581's merge, and main has since
advanced (PR #582), so the push was rejected non-fast-forward. Reruns
always replay the same stale SHA, so that path cannot succeed anymore.

This PR takes auto-tag.yml's documented escape hatch instead: pre-bump
every version artifact to 1.6.0 in the PR itself. On merge, the
auto-tag run finds the artifacts already at the new version, skips the
release-bot push, and proceeds straight to tag + GitHub Release +
publish dispatch.

Rendered via the same scripts auto-tag runs (render_site.py,
render_site_markdown.py, render_server_card.py). Also picks up
server.json, which render_server_card.py rewrites but auto-tag's
git-add list does not stage.

Co-authored-by: njord <njord@njords-Mac-mini.localdomain>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:minor Bump minor version on merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant