Skip to content

Commit 779393d

Browse files
Jamesclaude
authored andcommitted
Serialise red-master runs
The design rests on there being exactly one open ci-red issue, and the lookup that enforces that is a read followed by a write. Two watched workflows can complete seconds apart -- the nightly's jobs finish together, and a push can land mid-run -- so two red-master runs could each find no open issue and each open one. cancel-in-progress stays false on purpose: cancelling the earlier run would drop a notification about a failure, which is the thing this workflow exists to prevent. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PtAbQJuygzhHiveuCxCPnT
1 parent bd00a98 commit 779393d

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

.github/workflows/red-master.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@ on:
3939
permissions:
4040
contents: read
4141

42+
# Serialised, because the whole design rests on there being exactly one open
43+
# issue. Two watched workflows can finish seconds apart -- the nightly runs
44+
# `pinned` and `latest` together, and a push can land while one is running --
45+
# and two concurrent runs would each look for an open issue, each find none, and
46+
# each open one.
47+
#
48+
# cancel-in-progress is false, and explicitly so: cancelling the earlier run
49+
# would drop a notification about a failure, which is the one thing this
50+
# workflow exists to prevent.
51+
concurrency:
52+
group: red-master
53+
cancel-in-progress: false
54+
4255
jobs:
4356
notify:
4457
name: "Track whether master is red"

0 commit comments

Comments
 (0)