feat: add expo 56 support beta testing#363
Conversation
artus9033
left a comment
There was a problem hiding this comment.
I left a few comments on the approach so we reduce the committed code for maintainability & a cleaner way to do this. This is mostly cosmetic, other than that, it's great work & we're on the right track!
|
Waiting on your review @hurali97 . After that + CI green, let's ship it! |
There was a problem hiding this comment.
Pull request overview
This PR introduces an automated “Expo beta” road-test path intended to validate upcoming Expo SDK beta releases (e.g., SDK 56) against the repo’s existing AndroidApp/AppleApp consumer builds before stable support is added.
Changes:
- Add a script to detect the latest Expo beta, generate
apps/ExpoAppBetafromExpoApp55, and (optionally) apply the detected Expo version. - Add a scheduled GitHub Actions workflow to run Android + iOS road tests for the detected Expo beta and record success via an artifact marker / create issues on failure.
- Add new Android flavor and iOS scheme/target + build scripts for the “expobeta” consumer variants.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/check-expo-beta.ts | Implements Expo beta detection and on-the-fly generation/updating of ExpoAppBeta. |
| scripts/tests/check-expo-beta.test.ts | Adds unit tests for updateExpoVersion. |
| apps/README.md | Documents ExpoAppBeta and how to build the new AppleApp consumer variant. |
| apps/AppleApp/package.json | Adds build:example:ios-consumer:expobeta script. |
| apps/AppleApp/Brownfield Apple App.xcodeproj/xcshareddata/xcschemes/Brownfield Apple App Expo Beta.xcscheme | Adds a shared Xcode scheme for the Expo beta consumer target. |
| apps/AppleApp/Brownfield Apple App.xcodeproj/project.pbxproj | Adds an Expo beta AppleApp target and framework embed/link configuration. |
| apps/AndroidApp/package.json | Adds build:example:android-consumer:expobeta script. |
| apps/AndroidApp/gradle/libs.versions.toml | Adds a new brownfieldlib-expobeta dependency coordinate. |
| apps/AndroidApp/app/build.gradle.kts | Adds the expobeta flavor and wires its dependency. |
| .github/workflows/expo-beta-road-test.yml | Adds a scheduled/manual workflow to detect and road-test Expo betas on Android and iOS. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Implemented automated Expo beta validation in CI.
Added a scheduled/manual workflow that detects new Expo beta releases, generates a temporary ExpoAppBeta during the CI run, applies the detected Expo version, runs npx expo install --fix, and executes scoped Android and iOS brownfield road tests. The workflow skips beta versions that were already tested successfully, writes a markdown summary to the workflow run, fails when the road test fails, and creates or updates a GitHub issue when the demo app breaks.
Test plan