Commit 5d658a6
committed
ci(e2e): binary cache APK / .app + shrink diagnose to BAPI sanity check
Now that the sign-in flow actually passes end-to-end, layer in
binary-level caching so flow-only iterations stop paying the 5-minute
native build cost.
Compute a single source hash from packages/expo + the workflow file +
the quickstart's source (excluding node_modules, android, ios), keyed
also on EXPO_INSTANCE_NAME (the publishable key is baked into the JS
bundle, so a different instance must invalidate the cache).
Restore that hash as actions/cache/restore@v4 -> /tmp/cached-app-release.apk
(Android) or /tmp/cached-clerknativequickstart.app (iOS). On cache hit,
every build-only step (monorepo install, @clerk/expo build/pack, quickstart
configure + install, stub assets, .env write, JDK setup, gradle cache,
prebuild, gradle assembleRelease / xcodebuild) is skipped. The emulator /
simulator step adb-installs the cached binary and runs Maestro.
On cache miss, the build runs as before, the produced binary is copied to
the stable cache path, and actions/cache/save@v4 persists it for the next
run.
Also shrink the diagnose step now that the underlying mystery (it was a
missing --env on the maestro CLI all along, not a Clerk config issue) is
resolved. The remaining "Verify BAPI user" step is a tight pre-Maestro
sanity check that runs in ~200ms.
Expected effect:
cold cache (first run after a source change) - same as before, ~25 min
warm cache, flow-only iteration ~3-4 min1 parent f60c318 commit 5d658a6
1 file changed
Lines changed: 133 additions & 76 deletions
0 commit comments