Skip to content

Delete the duplicate CI workflow so it runs once per push - #171

Merged
jcschaff merged 1 commit into
mainfrom
ci/remove-duplicate-workflow
Sep 12, 2026
Merged

jcschaff merged 1 commit into
mainfrom
ci/remove-duplicate-workflow

Conversation

@jcschaff

Copy link
Copy Markdown
Contributor

Finding F4: ci-test.yml and main.yml were both named "Main" and both defined quality and tests-and-type-check, so every pull request ran each of them twice.

Why deleting is the fix, rather than changing a trigger

ci-test.yml was a strict subset of main.yml:

ci-test.yml main.yml
quality identical identical
tests-and-type-check identical but for one step's display name
check-docs absent present
trigger on: push, no branch filter push to main, plus pull_request

The only thing it contributed was the worse trigger, firing on every push to every branch. main.yml already covers pushes to main and all pull requests, which is the intended coverage, so nothing is lost.

What it saves

before after
checks per PR 8 4
runner time per push ~25m ~12m

This matters more than when F4 was written: the build test added in the previous PR takes the suite from roughly two minutes to over six per job, so the duplication was costing a lot more than it used to.

Deliberately not included

A concurrency group with cancel-in-progress would abandon superseded runs when a branch is pushed repeatedly, which is a further saving. That is a different change from de-duplicating triggers, so it is left as its own decision.

Verification

This PR is its own test: it should show four checks rather than eight.

🤖 Generated with Claude Code

https://claude.ai/code/session_018TgVbCXXWAWhNjtKTzrxvN

`ci-test.yml` and `main.yml` were both named "Main" and both defined `quality`
and `tests-and-type-check`, so every pull request ran each of them twice. This
is finding F4.

No trigger needed changing: `ci-test.yml` was a strict subset. The two `quality`
jobs were byte-identical, the two `tests-and-type-check` jobs differed only in
one step's display name, and `check-docs` existed solely in `main.yml`. The only
thing `ci-test.yml` contributed was a worse trigger -- a bare `on: push` with no
branch filter, firing on every push to every branch, which is what produced the
duplicate. `main.yml` already triggers on pushes to `main` and on pull requests,
which is the intended coverage. So the fix is to delete the file.

Halving the jobs matters more than it did when F4 was written. The build test
added in group F takes the suite from roughly two minutes to over six per job,
so runner time per push drops from about 25 minutes to about 12.

A further saving is available and deliberately not taken: a `concurrency` group
with `cancel-in-progress` would abandon superseded runs when a branch is pushed
repeatedly. That is a different change from de-duplicating triggers and belongs
in its own decision.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018TgVbCXXWAWhNjtKTzrxvN
@jcschaff
jcschaff merged commit 890e14f into main Sep 12, 2026
5 checks passed
@jcschaff
jcschaff deleted the ci/remove-duplicate-workflow branch September 12, 2026 19:03
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.

1 participant