Repository navigation
v1 CI: workflow branch filters still reference main, disabling the e2e gate #2065
Description
Summary
Two workflows on v1/main still filter on main, left over from when the v1 line
was main. Neither describes how the branches work now: v1/main publishes
exclusively to the v1-latest dist-tag straight from that branch, and main is
where v2/main's milestone merges land and publish to latest.
The two cases look alike but differ sharply in consequence.
1. main.yml — stale, but inert
on:
push:
branches:
- main # <- stale
- v1/main
pull_request: # <- unfilteredNothing is mis-publishing today:
- For
pushevents GitHub runs the workflow file from the commit that was
pushed. A push tomaintherefore usesmain's workflow, and this file is
consulted only when the pushed ref isv1/main. For themainentry to fire, a
commit onmainwould have to carry this file — and it doesn't:origin/main
holdsclaude.yml+ amain.ymlthat is the v2 workflow. - The same file-resolution rule makes the unfiltered
pull_request:harmless,
since a PR's workflow comes from its merge ref. - Publishing is gated on
github.event_name == 'release'and never consults the
branch filter; the release's target commit selects the workflow. The cross-line
dist-tag risk is already defused explicitly —publish-allpins
--tag v1-latest, with the reasoning commented in place — and a mis-targeted
release is caught by the version assert on both lines.
So the problem is that the file asserts an intent that is no longer true, and the
main entry would become live the moment anything put a v1-shaped tree back on
main.
2. e2e_tests.yml — the same leftover, but it silently disabled a gate
on:
push:
branches: [main]
pull_request:
branches: [main]Here main matching nothing is not harmless — it means the Playwright suite has
never run on v1/main at all. Confirmed against the branch's full run history,
which contains only Run install, format, lint, build, and test on every push and
CLI Tests, and zero Playwright Tests runs.
This was initially held back from the fix on the theory that re-enabling a suite
that had never executed risked a permanently red CI on a deprecated line. That
concern doesn't apply: nothing has changed on this branch since the suite last ran
on main, so there is nothing for it to have rotted against. It's in scope.
cli_tests.yml needs no change — it filters on paths: cli/** with no branch
filter, so it already runs here.
The change
Both handled in #2066, as two commits so the risk profiles stay separable:
-
main.yml— drop- mainfrompush, constrainpull_requesttov1/main.
No behavior change on any path that runs today. -
e2e_tests.yml— repoint both filters atv1/main. This is a behavior
change: it turns a dead workflow back on.
release is untouched in both, so publishing is unaffected.
Notes
- No milestone: every open milestone is a v2 release bucket, and v1 releases never
pass throughmain, so there is no correct bucket for a v1 issue.
Activity
ci(v1): re-enable the Playwright suite on v1/main
[-]v1 CI: workflow triggers still reference `main`, which now belongs to v2[/-][+]v1 CI: workflow branch filters still reference `main`, disabling the e2e gate[/+]ci(v1): pin workflow branch filters to v1/main