ci(android): reuse cached system images across emulator workflows

Merged
TH
8h ago
+175-2

Summary

Android smoke, manual replay, and performance jobs repeatedly download the same API 36 Play Store system image. Use Blacksmith's accelerated Actions cache with a shared weekly prefix and immutable entries keyed by the installed image revision. Prefix restores reuse updated images. The SDK setup action owns installation, license acceptance, and the resolved image directory, preserving its existing SDK-root resolution. Cold boots and test commands remain intact.

Six files; CI setup and regression tests. The baseline Android job spent 43 seconds installing this image. Warm-cache reuse is verified below.

Validation

Head: 387d6d0d815f48a3b96bd123260d853b19e0f9a4. Base: 880cea7002c3fdb392a2900795ff45f23529aef6.

  • Full SDK implementation at fea06c93b8: affected gate passed, exactCommit: true; 42 passed, 25 CI-owned skipped. Final fixture-only change at head: five incremental checks passed against that validated commit, exactCommit: true.
  • Five focused tests pass. A wrong-image mutation passes the old fake but fails two cases with the strengthened fake.
  • SDK implementation independently reviewed with no findings; the final fixture guard was self-reviewed and mutation-checked.
  • Cold and warm Android smoke passed at fea06c93b8. The warm run restored revision 7, downloaded no upstream image, and skipped cache saving. SDK/cache action files are unchanged by the final fixture-only commit.
  • Head CI and Android smoke passed. At head: 19 successful checks, one expected app-build matrix skip, and no unresolved review threads. Installed/unpacked size growth: 0 B.