Queue release-note runs instead of cancelling them, and check the named head #128
No reviewers
Labels
No labels
area:docs
area:identity
area:ops
area:plugin
area:server
channel:community
channel:direct
channel:owned
channel:press
channel:social
e2ee-constrained
gate:at-ga
gate:pre-ga
marketing
parity
relay:absent
relay:planned
relay:requested
relay:supported
risk:additive
risk:contract
risk:none
usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda!128
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-release-note-race"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This follows PR #127, which had a green release-note run and still could not merge.
Cause: pushing a commit and editing the PR description within one second started two
release-noteruns, one forsynchronizeand one foredited. Forgejo's automatic concurrency cancelled the older run. A cancelled job reports its commit status asfailure. Both runs reported on the same commit under the same context, so they alternated 35 statuses over 15 s, and the cancelled one'sfailurewas posted last. Branch protection read that failure.Fix:
concurrency: { group: release-note-<PR>, cancel-in-progress: false }. A second run now queues instead of cancelling, both finish in event order, and the newest result posts last.actions/checkoutatgithub.event.pull_request.head.sha. Aneditedevent that arrives before Forgejo has processed a just-made push is recorded against the previous head, so its default checkout judged the old tree while its status landed on the new commit.editedstays, so fixing a description still re-checks without re-running CI.Verification, on this PR (race reproduced by this very edit): the race is reproduced deliberately (force-push and description edit in the same second). The expected result is two runs, the second waiting rather than cancelling, both successful, and no
failurestatus on the head.Changelog
NONE
🤖 Generated with Claude Code
https://claude.ai/code/session_01StURdiv33xnMfE2XRyg8Lt
1a00314fa1956701a9a1