Skip to content

Run CI on main and on stacked pull requests - #24

Merged
JedimEmO merged 1 commit into
mainfrom
ci-cover-main
Jul 25, 2026
Merged

Run CI on main and on stacked pull requests#24
JedimEmO merged 1 commit into
mainfrom
ci-cover-main

Conversation

@JedimEmO

Copy link
Copy Markdown
Owner

Follow-up to #22/#23, which both merged without a single check run. This closes the two gaps that allowed it.

What went wrong

rust.yml triggered only on pull_request with branches: [main].

  1. main is never tested. There is no push trigger, so anything reaching main by another route is unverified. The run history shows Code checking and unit testing firing for modernize-example-app (Rebuild the example site as a bleeding-edge dwind/dominator showcase #21) and then nothing for Let dwind express keyframes, pseudo-elements and arbitrary declarations #22 or Delete the example's stylesheet #23 — the pushes to main only triggered the Pages deploy.
  2. Stacked PRs get no checks. A PR based on another feature branch doesn't match branches: [main]. Let dwind express keyframes, pseudo-elements and arbitrary declarations #22 was based on modernize-example-app and Delete the example's stylesheet #23 on dwind-keyframes-and-arbitrary-values, so neither ever qualified. They were retargeted to main shortly before merge, which is too late for checks to run.

The changes that most want verifying are the stacked ones, since they land on top of an unmerged base.

The change

on:
  push:
    branches: [ main ]
  pull_request:
  workflow_dispatch:

push stays pinned to main, so a PR branch in this repo doesn't run twice. workflow_dispatch means main can be re-checked on demand instead of needing a throwaway PR.

Verification

The workflow was run locally against merged main, reproducing all four steps:

step result
cargo test (host) pass
cargo clippy pass
wasm suite, Firefox pass
wasm suite, Chrome pass

Two notes from doing that, both worth knowing for anyone reproducing CI locally:

  • It needs wasm-bindgen-cli 0.2.105 to match Cargo.lock. A newer global install fails with a bindgen schema mismatch — which is exactly what the existing comment on the wasm-bindgen-action version pin is warning about. wasm-pack test masks this by managing its own matching copy, so the bare cargo test --target wasm32-unknown-unknown that CI runs is the stricter check.
  • The Chrome leg needs a ChromeDriver matching the installed Chrome (149 here).

This PR is itself the first test of the new trigger: opening it should produce a check run.

🤖 Generated with Claude Code

The workflow only triggered on `pull_request` with base `main`, which left
two gaps that combined to let an unverified merge through.

main was never tested directly. Nothing runs on push, so anything that
reaches main by another route — a merge whose checks had not finished, a
direct push — is unverified. That is how PRs #22 and #23 landed without a
single check run.

And the `branches: [main]` filter skips stacked pull requests: a PR based
on another feature branch does not match, so it gets no checks at all.
Those are exactly the changes that most want verifying, since they land
on top of an unmerged base. Dropping the filter covers them; `push` stays
pinned to main so a PR branch does not run twice.

Also adds workflow_dispatch, so main can be re-checked on demand rather
than needing a throwaway PR.

Verified locally against merged main, reproducing all four steps — host
tests, clippy, and the wasm suite under both Firefox and Chrome. That
needed wasm-bindgen-cli 0.2.105 to match Cargo.lock; a newer global
install fails with a schema mismatch, which is what the existing comment
on the wasm-bindgen-action version is warning about.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@JedimEmO
JedimEmO merged commit 302a6a8 into main Jul 25, 2026
1 check passed
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