Skip to content

ci(e2e): key playground app caches on native fingerprints - #294

Merged
V3RON merged 4 commits into
mainfrom
ci/native-fingerprint-cache
Oct 26, 2026
Merged

V3RON merged 4 commits into
mainfrom
ci/native-fingerprint-cache

Conversation

@V3RON

@V3RON V3RON commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

What is this?

The E2E workflow now builds the playground app at most once per native fingerprint and reuses it across jobs and runs. Previously each E2E and crash-validation job compiled its own copy, and the CocoaPods sandbox was restored through a prefix fallback that could pick up a stale Pods/ and break pod install.

How does it work?

A cheap Ubuntu fingerprint job hashes everything that determines each platform's native debug build: @expo/fingerprint for the app, plus the git-tracked native files and codegen specs of every workspace: dependency (which keep their version while their native code changes) and the toolchain settings (Xcode, JDK, architectures, RCT_* flags). It also computes a narrower ios-pods hash covering only what pod install reads.

build-ios and build-android run only when no app is cached under that fingerprint, then save it. The E2E and crash jobs restore the app by exact key. Pods/ is cached by exact ios-pods key with no prefix fallback. A push trigger on main seeds caches that pull requests can read.

Why is this useful?

Unchanged native code means no native compilation at all, and a change to one platform's native code rebuilds only that platform. Pull requests reuse builds from main instead of compiling from scratch, and the stale-Pods pod install failures go away.

V3RON added 4 commits October 25, 2026 20:54
PoC: compute @expo/fingerprint-based hashes once, build each app once per
fingerprint, key Pods/ exactly on CocoaPods inputs, and seed caches on main.
@vercel

vercel Bot commented Oct 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
react-native-harness Ready Ready Preview Oct 26, 2026 6:55am UTC

Request Review

@V3RON
V3RON marked this pull request as draft October 26, 2026 06:58
@V3RON
V3RON marked this pull request as ready for review October 26, 2026 06:58
@V3RON
V3RON merged commit b950cbd into main Oct 26, 2026
21 of 25 checks passed
@V3RON
V3RON deleted the ci/native-fingerprint-cache branch October 26, 2026 07:44

This branch was successfully deployed

1 active deployment
Preview — c7cae6fe Deployed Oct 26, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant