Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 16 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,19 +139,23 @@ on:
# Concurrency policy, by context:
# - FEATURE branches / feature PRs β†’ cancel superseded runs (per-ref group +
# cancel-in-progress): a newer push makes the older run redundant.
# - RELEASE-relevant contexts β†’ NEVER superseded. Pushes to
# master/main/next/hotfixes and the next/hotfixes β†’ master/main release PRs
# each get a UNIQUE group per run (run_id appended), so nothing cancels them.
# During the burst of pushes a release makes to next/hotfixes (the feature
# squash, the post-hotfix master→next sync merge, the bot's `chore: bump
# version`), every run completes and posts a GREEN check instead of the
# earlier one being cancelled into a red X on the release PR. A bare
# `cancel-in-progress: false` is NOT enough β€” GitHub still cancels the middle
# PENDING run when a newer one queues; a unique group avoids all of it.
# github.head_ref is set only on pull_request (the PR's head β†’ next/hotfixes for
# release PRs); github.ref carries the branch on push.
# - RELEASE-relevant contexts β†’ NEVER superseded. Pushes to the release base
# branch (derived: the CLDMV_RELEASE_BASE var β†’ the repo's default branch),
# to next/hotfixes, and the next/hotfixes β†’ base release PRs each get a
# UNIQUE group per run (run_id appended), so nothing cancels them. During
# the burst of pushes a release makes to next/hotfixes (the feature squash,
# the post-hotfix base→next sync merge, the bot's `chore: bump version`),
# every run completes and posts a GREEN check instead of the earlier one
# being cancelled into a red X on the release PR. A bare
# `cancel-in-progress: false` is NOT enough β€” GitHub still cancels the
# middle PENDING run when a newer one queues; a unique group avoids it.
# The base is NOT hardcoded to master/main β€” it derives the same way
# resolve-release-base does (CLDMV_RELEASE_BASE override β†’ default_branch).
# next/hotfixes are the flow's fixed integration-branch names. github.head_ref
# is set only on pull_request (the release PR's head β†’ next/hotfixes);
# github.ref carries the branch on push.
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}${{ (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/hotfixes' || github.head_ref == 'next' || github.head_ref == 'hotfixes') && format('-{0}', github.run_id) || '' }}
group: ci-${{ github.workflow }}-${{ github.ref }}${{ (github.ref == format('refs/heads/{0}', vars.CLDMV_RELEASE_BASE != '' && vars.CLDMV_RELEASE_BASE || github.event.repository.default_branch) || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/hotfixes' || github.head_ref == 'next' || github.head_ref == 'hotfixes') && format('-{0}', github.run_id) || '' }}
cancel-in-progress: true

# Workflow-level: matches the broadest write surface the called
Expand Down
Loading