Skip to content

ci: run the native smoke suite on every pull request on macOS and Linux - #902

Closed
janicduplessis wants to merge 2 commits into
@janic/windows-smoke-e2efrom
@janic/native-smoke-pr
Closed

janicduplessis wants to merge 2 commits into
@janic/windows-smoke-e2efrom
@janic/native-smoke-pr

Conversation

@janicduplessis

Copy link
Copy Markdown
Collaborator

Closes #901. Stacked on #899 (base branch set to it; will retarget main once #899 merges).

Pull requests never built or launched anything natively on macOS or Linux: e2e-native.yml ran nightly, on dispatch, or on a pull request carrying the e2e-native label, which none has carried. This adds a smoke suite to that workflow, driven by run-native-e2e.mjs --smoke from #899: one worktree, stim start, build, install, launch, readiness, stim stop, cleanup checks. Expo framework only (bare is already excluded on iOS 27), so one ios expo (smoke) job on xcode-27 and one android expo (smoke) job on Ubuntu with KVM, blocking.

Gate. The job-level if: gates are replaced by the matrix suite expression: an unlabeled pull request selects smoke, a labeled one loop, the nightly loop, and dispatch its input (smoke is a new option). Pull requests touching only docs/, website/ or Markdown skip the workflow via paths-ignore.

Speed. The smoke restores the same cross-run build cache the loop already persists with actions/cache, so a pull request that leaves the native fingerprint alone installs from cache (about 8 minutes iOS, 5 Linux); one that changes it pays the cold build. The Windows Android lane in ci.yml gets the same cache (D:\e\build-cache, keyed like the others) and the same warm-cache detection, bringing its typical run from ~25 to ~14 minutes, the emulator boot being the floor.

docs/e2e-and-ci.md and both workflow headers describe the new gate.

…ux, warm from the cross-run cache

e2e-native.yml gains a smoke suite: run-native-e2e.mjs --smoke, Expo only,
one iOS job on xcode-27 and one Android job on ubuntu with KVM, selected for
any pull request that does not carry the e2e-native label. Labeled pull
requests, the nightly and dispatch keep their suites. Documentation-only pull
requests skip the workflow. The smoke restores the same cross-run build cache
the loop does, so a change that leaves the native fingerprint alone installs
from cache; the Windows lane in ci.yml gets the same cache.
@janicduplessis

Copy link
Copy Markdown
Collaborator Author

Superseded: the gate is changing to push-to-main plus opt-in labels (e2e-smoke, e2e-loop, e2e-caches, e2e-pool, e2e-all) with the Windows job moving into e2e-native.yml; a fresh PR against #901 follows.

@janicduplessis
janicduplessis deleted the @janic/native-smoke-pr branch September 19, 2026 12:26
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