Skip to content

ci: avoid unrelated Apple runner cache invalidation - #2303

Merged
thymikee merged 1 commit into
mainfrom
ci/apple-runner-cache-identity
Sep 5, 2026
Merged

ci: avoid unrelated Apple runner cache invalidation#2303
thymikee merged 1 commit into
mainfrom
ci/apple-runner-cache-identity

Conversation

@thymikee

@thymikee thymikee commented Sep 5, 2026

Copy link
Copy Markdown
Member

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 --run checks passed. The first sandboxed attempt stopped because the cleanup guard could not run ps; 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.

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 2.61 MB 2.61 MB 0 B
JS gzip 879.1 kB 879.1 kB 0 B
npm bundled raw 2.61 MB 2.61 MB 0 B
npm bundled gzip 879.1 kB 879.1 kB 0 B
npm tarball 1.04 MB 1.04 MB -5 B
npm unpacked 3.52 MB 3.52 MB 0 B
npm clean-installed 3.52 MB 3.52 MB 0 B

npm unpacked components

Component Base Current Diff
JS / dist source 2.77 MB 2.77 MB 0 B
Apple runner source/project 544.4 kB 544.4 kB 0 B
Apple snapshot presentation source 33.8 kB 33.8 kB 0 B
Apple Simulator snapshot bridge source 30.5 kB 30.5 kB 0 B
macOS helper source 54.8 kB 54.8 kB 0 B
Android helper artifacts 43.3 kB 43.3 kB 0 B
Other package files 46.7 kB 46.7 kB 0 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 26.4 ms 26.6 ms +0.2 ms
CLI --help 80.0 ms 79.2 ms -0.9 ms

Top changed chunks: no changes in the largest emitted chunks.

Top changed packed files

No changed packed files.

@thymikee

thymikee commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

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.

@thymikee

thymikee commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

Addressed the Android CI follow-up in #2303 (comment).

Confirmed attempt 1 failed the helperSessionReused === true assertion in assertPersistentAndroidHelper. Reran the failed job on the unchanged head 31b07ed5bf96ab837995a039eafdf8fcc329cf34; attempt 2 passed the full Android Smoke Tests job: https://github.com/callstack/agent-device/actions/runs/33983598748/job/101358507092.

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 buildMs: 0 during CLI preflight. All review/discussion comments were inspected; the size report requires no action, and there are no inline code findings or unresolved review threads.

@thymikee

thymikee commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

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.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Sep 5, 2026
@thymikee
thymikee merged commit 9d9e93a into main Sep 5, 2026
18 of 19 checks passed
@thymikee
thymikee deleted the ci/apple-runner-cache-identity branch September 5, 2026 19:10
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-05 19:10 UTC

thymikee added a commit that referenced this pull request Sep 5, 2026
* 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)
thymikee added a commit that referenced this pull request Sep 5, 2026
* 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)
thymikee added a commit that referenced this pull request Sep 5, 2026
* 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant