From 203f01c9f7955ba366f3627a5b5fb2eeb95f73eb Mon Sep 17 00:00:00 2001 From: Paul Asjes Date: Tue, 28 Jul 2026 20:05:48 -0400 Subject: [PATCH 1/2] fix(ci): stop running every job twice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pushing to a branch with an open PR triggered both `push` and `pull_request`, so each job ran twice. The concurrency group keys on github.ref, which differs between the two events (refs/heads/… vs refs/pull/N/merge), so they land in separate groups and neither cancels the other. Scope `push` to next and main: those still get validated on merge, while feature branches are covered by their pull request — which also tests the merge result rather than just the branch tip. Halves CI time per push, which matters now that the wire tests take 6-8 minutes. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f25cf2a..8f2e6f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,12 @@ name: ci on: + # Only the long-lived branches, so this validates what actually landed. + # Without the filter, pushing to a branch that has an open PR runs every job + # twice — once for `push`, once for `pull_request` — since the two events use + # different refs and so land in different concurrency groups. push: + branches: [next, main] pull_request: types: [opened, synchronize, reopened] From 68a88c0b98d2bb93f531bf16d731831735eafc07 Mon Sep 17 00:00:00 2001 From: Paul Asjes Date: Tue, 28 Jul 2026 20:10:25 -0400 Subject: [PATCH 2/2] fix(ci): drop the explanatory comment Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f2e6f0..5251bd0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,6 @@ name: ci on: - # Only the long-lived branches, so this validates what actually landed. - # Without the filter, pushing to a branch that has an open PR runs every job - # twice — once for `push`, once for `pull_request` — since the two events use - # different refs and so land in different concurrency groups. push: branches: [next, main] pull_request: