Repository navigation
ci(e2e): key playground app caches on native fingerprints - #294
Merged
Merged
Conversation
PoC: compute @expo/fingerprint-based hashes once, build each app once per fingerprint, key Pods/ exactly on CocoaPods inputs, and seed caches on main.
This reverts commit 6ebca73.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
V3RON
marked this pull request as draft
October 26, 2026 06:58
V3RON
marked this pull request as ready for review
October 26, 2026 06:58
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 breakpod install.How does it work?
A cheap Ubuntu
fingerprintjob hashes everything that determines each platform's native debug build:@expo/fingerprintfor the app, plus the git-tracked native files and codegen specs of everyworkspace:dependency (which keep their version while their native code changes) and the toolchain settings (Xcode, JDK, architectures,RCT_*flags). It also computes a narrowerios-podshash covering only whatpod installreads.build-iosandbuild-androidrun 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 exactios-podskey with no prefix fallback. Apushtrigger onmainseeds 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
maininstead of compiling from scratch, and the stale-Podspod installfailures go away.