ci: avoid unrelated Apple runner cache invalidation - #2303
Conversation
Size Report
npm unpacked components
Startup median (7 runs, lower is better):
Top changed chunks: no changes in the largest emitted chunks. Top changed packed filesNo changed packed files. |
|
Sentinel review at 31b07ed. No actionable code findings in the Apple cache-action changes. Merge readiness remains blocked by confirmed Android Smoke Tests failure: job 101353050083 in run 33983598748 fails assertPersistentAndroidHelper at live-assertions.ts:80 because helperSessionReused is false, expected true. This is outside the Apple-only diff, but that alone does not prove a flake. Rerun/investigate the failing lane before merge. |
|
Addressed the Android CI follow-up in #2303 (comment). Confirmed attempt 1 failed the No assertion changes or Android code changes were needed. This establishes a passing rerun, not a root-cause diagnosis of the first failure. The iOS lane also passed, saved the new Apple runner cache key, and reported |
|
Readiness reconciliation at 31b07ed: the Android rerun has now passed, and all exact-head checks are green with no conflicts. The prior independent code review remains clean; the Apple-only cache action has no remaining review blocker. Ready for human merge. |
|
* origin/main: perf: bundle runtime dependencies and report full install size (#2310) ci: avoid unrelated Apple runner cache invalidation (#2303) fix(web): preserve the backend ref so snapshot refs match actionable refs (#2283) test(daemon): session-open-url-prewarm through the request seam (#2304) test(daemon): session-devices-batch-runtime through the request seam (#2305) chore(gates): layering baselines ratchet against merge-base (#2299) test(daemon): one typed conformance helper for the daemon runtime suites (#2298) chore(layering): derive the contracts export inventory from package.json (#2297) perf: bundle tar-stream to reduce install footprint (#2286) docs: simplify agent context and resolve conflicting guidance (#2287) refactor(cli): let help resolve command aliases itself and retire R12 (#2293)
* origin/main: perf: bundle runtime dependencies and report full install size (#2310) ci: avoid unrelated Apple runner cache invalidation (#2303) fix(web): preserve the backend ref so snapshot refs match actionable refs (#2283) test(daemon): session-open-url-prewarm through the request seam (#2304) test(daemon): session-devices-batch-runtime through the request seam (#2305) chore(gates): layering baselines ratchet against merge-base (#2299) test(daemon): one typed conformance helper for the daemon runtime suites (#2298) chore(layering): derive the contracts export inventory from package.json (#2297) perf: bundle tar-stream to reduce install footprint (#2286) docs: simplify agent context and resolve conflicting guidance (#2287) refactor(cli): let help resolve command aliases itself and retire R12 (#2293) refactor(commands): retire the navigation-only type projection (#2294) feat(runtime): route managed leases through contained transports (#2285) refactor(contracts): build unavailable runtime facts once (#2291) refactor(cli): derive the common flag readers from the common-field table (#2292) feat(daemon): add managed allocation operation journal (#2284)
* origin/main: perf: bundle runtime dependencies and report full install size (#2310) ci: avoid unrelated Apple runner cache invalidation (#2303) fix(web): preserve the backend ref so snapshot refs match actionable refs (#2283) test(daemon): session-open-url-prewarm through the request seam (#2304) test(daemon): session-devices-batch-runtime through the request seam (#2305) chore(gates): layering baselines ratchet against merge-base (#2299) test(daemon): one typed conformance helper for the daemon runtime suites (#2298) chore(layering): derive the contracts export inventory from package.json (#2297) perf: bundle tar-stream to reduce install footprint (#2286)
Summary
Keep prebuilt Apple runners reusable across unrelated dependency and package-version changes. Hash the runner build commands instead of the whole root manifest and lockfile, and include architecture, bundle IDs, and the Swift build wrapper in cache identity. Report cache hits/misses in the job summary and save using the restore action's primary key.
The existing main-branch producer already serves the iOS workflows: run 33981982967 restored a 65 MB runner in 3.4 seconds and preflight reported
buildMs: 0. No additional prebuild workflow is needed. The revised key requires one initial rebuild per variant.Scope: one shared CI action; no runtime, docs, or skill changes.
Validation
Head:
31b07ed5bf96ab837995a039eafdf8fcc329cf34.All runnable
pnpm check:affected --runchecks passed. The first sandboxed attempt stopped because the cleanup guard could not runps; the rerun with process-list access passed.Focused shell checks demonstrated the old key's invalidation gaps and passed against the revised action. Actionlint passed for all seven consuming workflows. Native/device CI and the first new-key cache restore remain to be observed on GitHub.