Repository navigation
ci: skip device smoke lanes when a PR changes no lane input - #3904
Conversation
Android, Linux, macOS, and web smoke now use the affected-check model the iOS smoke already used. Unit tests own no device lane, so a test-only PR skips every device lane. Pushes to main and uncertain diffs still run all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Size Report
Startup median (7 runs, lower is better):
|
|
This PR is ready at d0c85f9, and I found no problems that need a change. All 19 checks pass at this head, and there are no conflicts. Because the PR changes Not blocking, and you can take or leave these: (1) The |
|
* origin/main: perf(ios): confirm fill focus from the tapped input before the keyboard (#3906) feat(perf): time every iOS command against the fixture app (#3885) fix(ios): stop the XCTest-channel penalty from re-arming itself (#3896) test(android): pin that a child vanishing mid-read reads as gone (#3905) ci: skip device smoke lanes when a PR changes no lane input (#3904) fix(ios): verify deep-tree back on the sole screen (#3894) fix(ios): synthesize long presses and the gesture viewport on deep trees (#3893) perf(ios): read each resolved text input through one snapshot (#3882) fix(gate): take the host validation lock for heavy gates (#3900) fix(logs): keep an early iOS simulator logs stop from hanging the session (#3892) fix(apple): clean the runner derived path the runner uses (#3897) test(provider-scenarios): open deadline scenarios without the test IME (#3903) test(host-kit): stub os.homedir for the exec-trace late-close test (#3898) feat(test-app): add a Bluesky-depth heavy feed screen (#3884)
Summary
A PR that only changes unit tests (
*.test.ts/__tests__/undersrc/orpackages/*/src/) no longer runs the device smoke lanes. iOS smoke already worked this way. Android, Linux, the macOS phase of Apple, and the web smoke steps in CI now use the same affected-check rule: a lane runs only whenselectCheckspicks one of its checks. Pushes to main, empty or unknown diffs, and fail-open plans (scripts/,.github/,package.json, …) still run every lane.scripts/device-lane-impact.ts <check-id>...holds the shared rule.apple-ci-impact.tsnow uses it for iOS smoke, XCTest, and the new macOS selection.skippedfor every unselected phase.Example: #3898, which only changed a test file, now skips Android and Linux.
Validation
At
d0c85f95b7c6be5ce7f63713e95e6045e9e85949:pnpm typecheck,pnpm check:fallow,check:gate-manifest, and theagent-guidance,docs-prose,production-exports,affected-selector, anddepgraphgates pass.vitest run scripts/__tests__/{device-lane,apple-ci}-impact.test.ts: 59 passed.check:affected --run --headfailed open to the full set.vitest-relatedran 17,008 tests with 11 timeouts under host load around 950. All 8 failing files pass when rerun alone (65 tests). The gates after it did not run locally, so CI is authoritative for them.🤖 Generated with Claude Code