Skip to content

Separate each template's concurrency group, and correct what they say about the name - #43

Merged
sakanni merged 2 commits into
developfrom
fix/workflow-name-concurrency-note
Oct 27, 2026
Merged

sakanni merged 2 commits into
developfrom
fix/workflow-name-concurrency-note

Conversation

@sakanni

@sakanni sakanni commented Oct 27, 2026

Copy link
Copy Markdown
Collaborator

Issues addressed by this PR

Closes #42

Every template was called CI and built its concurrency group from ${{ github.workflow }}. A group is scoped to the repository rather than to one workflow, so any other workflow in that repository called CI landed in the same group, and both sides set cancel-in-progress: true. A run that is cancelled never reports a conclusion, so a check someone is waiting on can simply never arrive.

The group now carries a literal prefix naming the file, so it does not depend on a workflow name at all, and two templates in one repository cannot collide with each other either. The two required-workflow sources at templates/ root take the same prefix as the required workflows they are copied into; the tier bundles, which stay repository-local, take their own.

The comment above name: said the name CI is what keeps the check contexts bare. That is not true: a check context is the job name and does not depend on the workflow name. It now says what the name actually controls.

Workflow names, triggers, jobs and job names are untouched, so no check context changes.

Test files

None. Each of the eight differs from develop in its comments and its group: line, and in nothing else.

Changelog

Additional comments

Nothing is renamed. The prefix makes the workflow name irrelevant to the group, so a rename would buy nothing and would move a name that may already be in use somewhere.

They said the name CI is what keeps the check contexts bare. A check context is
the job name and does not depend on the workflow name.

What the name does control is the concurrency group, which is scoped to the
repository, so a template sharing a name with a required workflow would let the
two runs cancel each other. The comment now says that instead.
The group was built from the workflow name alone, and every template is called
CI. A group is scoped to the repository, so any other workflow sharing that name
shared the group, and with cancel-in-progress set either run could cancel the
other.

The prefix names the file, so a template cannot collide with another workflow
that happens to be called CI, and two templates in one repository cannot collide
with each other. The two required-workflow sources at templates/ root take the
same prefix as the required workflows they are copied into; the tier bundles,
which stay repository-local, take their own.

Nothing else changes: workflow names, triggers, jobs and job names are untouched,
so no check context moves.
@sakanni
sakanni marked this pull request as ready for review October 27, 2026 00:31
@sakanni
sakanni merged commit ec089a5 into develop Oct 27, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tier templates: two workflows sharing a name can cancel each other

1 participant