Skip to content

ci(v1): pin workflow branch filters to v1/main, re-enabling the e2e gate - #2066

Merged
cliffhall merged 2 commits into
v1/mainfrom
v1/chore/2065-workflow-branch-triggers
Aug 20, 2026
Merged

ci(v1): pin workflow branch filters to v1/main, re-enabling the e2e gate#2066
cliffhall merged 2 commits into
v1/mainfrom
v1/chore/2065-workflow-branch-triggers

Conversation

@cliffhall

@cliffhall cliffhall commented Aug 20, 2026

Copy link
Copy Markdown
Member

Closes #2065

Two workflows on this branch still filtered on main, left over from when the v1
line was main. They look like the same defect but differ sharply in
consequence, so they're two commits.

1. main.yml — stale, but inert (c7dc8f70)

  • drops the stale main entry from the push filter
  • constrains the previously unfiltered pull_request trigger to v1/main
  • adds a comment recording why, so the next person doesn't re-add main

No behavior change on any path that runs today. For push, GitHub runs the
workflow file from the pushed commit, so this file was only ever consulted
when the pushed ref was v1/main; the main entry could not match unless a
commit on main carried a v1-shaped tree, and it doesn't — origin/main holds
claude.yml plus a main.yml that is the v2 workflow. The same rule made the
unfiltered pull_request harmless, since a PR's workflow comes from its merge
ref. The value is that the file now states its intent and the stale entry can't
become live later.

The dist-tag hazard people reach for first is already handled independently and
is not what this touches: publish-all pins --tag v1-latest, with the
reasoning commented in place, and a mis-targeted release is caught by the version
assert on both lines.

2. e2e_tests.yml — the same leftover, but it had disabled a gate (95fa9a1c)

branches: [main] on both push and pull_request matches nothing on this
branch, so the Playwright suite had never run on v1/main at all — confirmed
against the branch's full run history, which held only
Run install, format, lint, build, and test on every push and CLI Tests, and
zero Playwright Tests runs.

Both filters now point at v1/main. Unlike the first commit this is a
behavior change — it turns a dead workflow back on — which is why it's separate.

release is untouched in both, so publishing is unaffected. cli_tests.yml
needs no change: it filters on paths: cli/** with no branch filter.

Verified

The PR's own run is the proof, since the fixed pull_request filter is what
makes these execute here at all:

  • test (Playwright) — pass, 2m28s: Running 24 tests using 1 worker
    24 passed (42.8s)
    , Chromium + Firefox. The suite is healthy; the gate had
    simply been switched off.
  • build — pass, 1m18s
  • publish / publish-github-container-registry — correctly skipping on a
    non-release event, confirming the release gating is untouched
  • prettier --check clean on both files (the repo's prettier-check is
    prettier --check ., so it covers workflow YAML), and both parse with their
    triggers intact

The push filter still listed `main`, and `pull_request` carried no branch
filter at all — both leftovers from when the v1 line was itself `main`.
Neither describes the topology now: `v1/main` publishes straight to the
`v1-latest` dist-tag and never merges into `main`, which carries v2 and
publishes `latest`.

No behavior change on any path that runs today. For `push`, GitHub runs the
workflow file from the pushed commit, so this file was only ever consulted
for `v1/main`; `main` could not match unless a commit on that branch carried
a v1-shaped tree. The same resolution rule made the unfiltered
`pull_request` harmless, since a PR's workflow comes from its merge ref.
The `release` trigger is untouched, so publishing is unaffected — it is
gated on the event type and the release's target commit, never on these
filters.

The value is that the file now states its intent, and the stale `main`
entry can no longer become live if anything is ever restored onto that
branch.

Closes #2065

Signed-off-by: cliffhall <cliff@futurescale.com>
@cliffhall cliffhall added the v1 label Aug 20, 2026
@cliffhall cliffhall linked an issue Aug 20, 2026 that may be closed by this pull request
2 tasks
`e2e_tests.yml` filtered on `branches: [main]` for both `push` and
`pull_request` — the same leftover as main.yml, but with a sharper
consequence: `main` never matches on this branch, so the filter matched
nothing and the suite has never run on `v1/main` at all. The branch's full
run history contains zero `Playwright Tests` runs, only
`Run install, format, lint, build, and test on every push` and `CLI Tests`.

Repointed both filters at `v1/main` so the gate actually gates. Unlike the
main.yml change this is a real behavior change — it turns a dead workflow
back on — so it is deliberately a separate commit.

Refs #2065

Signed-off-by: cliffhall <cliff@futurescale.com>
@cliffhall cliffhall changed the title ci(v1): pin workflow branch filters to v1/main ci(v1): pin workflow branch filters to v1/main, re-enabling the e2e gate Aug 20, 2026
@cliffhall
cliffhall merged commit c489854 into v1/main Aug 20, 2026
4 checks passed
@cliffhall
cliffhall deleted the v1/chore/2065-workflow-branch-triggers branch August 20, 2026 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v1 CI: workflow branch filters still reference main, disabling the e2e gate

1 participant