-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
feat: Add the expo flask pipeline #15792
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
|
I have read the CLA Document and I hereby sign the CLA |
2655520 to
6065345
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #15792 +/- ##
==========================================
+ Coverage 69.58% 69.97% +0.38%
==========================================
Files 2473 2530 +57
Lines 53007 54023 +1016
Branches 8063 8309 +246
==========================================
+ Hits 36886 37800 +914
- Misses 13752 13784 +32
- Partials 2369 2439 +70 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
09c285c to
52c28d6
Compare
52c28d6 to
6595493
Compare
Cal-L
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
left a comment
|
Cal-L
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added comments for context
|
|
E2E passed already, just resolved conflict from main |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Android Build Script Issues
The scripts/build.sh script introduces two issues in Android builds:
- The
buildAndroidDevBuildfunction no longer sources environment variables from.android.envwhenPRE_RELEASEis true, as the sourcing logic inprebuild_androidis now conditional onPRE_RELEASEbeing false. This can lead to build failures. - Both
buildAndroidDevBuildand the newly addedbuildAndroidFlaskLocalfunctions are missing the-DtestBuildType=debugparameter when building their respective AndroidTest APKs (assembleProdDebugAndroidTestandassembleFlaskDebugAndroidTest). This omission breaks consistency with other test builds and may cause build or test failures.
scripts/build.sh#L286-L299
metamask-mobile/scripts/build.sh
Lines 286 to 299 in 5ba996b
| buildAndroidDevBuild(){ | |
| prebuild_android | |
| # Generate both APK (for development) and test APK (for E2E testing) | |
| cd android && ./gradlew assembleProdDebug assembleProdDebugAndroidTest --build-cache --parallel && cd .. | |
| } | |
| # Builds the Flask APK for local development | |
| buildAndroidFlaskLocal(){ | |
| prebuild_android | |
| # Generate both APK (for development) and test APK (for E2E testing) | |
| cd android && ./gradlew assembleFlaskDebug assembleFlaskDebugAndroidTest --build-cache --parallel && cd .. |
Bug: Build Function Directory Inconsistency
The buildIosFlaskLocal function changes to the ios directory but does not return, which is inconsistent with other build functions and can cause subsequent operations to run from the wrong directory. Additionally, the remapFlaskEnvVariables call was removed from buildIosFlaskRelease to rely on a new global call for Flask modes. This creates an inconsistency where Android Flask release builds may still have a redundant remapFlaskEnvVariables call, leading to it being executed twice for Android but only once for iOS, potentially causing unexpected environment variable behavior.
scripts/build.sh#L460-L471
metamask-mobile/scripts/build.sh
Lines 460 to 471 in 5ba996b
| buildIosFlaskLocal() { | |
| prebuild_ios | |
| # Go to ios directory | |
| cd ios | |
| # Generate a Flask debug .ipa for local | |
| generateIosBinary "MetaMask-Flask" "Debug" | |
| } | |
| buildIosFlaskRelease(){ | |
| prebuild_ios |
Was this report helpful? Give feedback by reacting with 👍 or 👎
|
|
All cursor comments are expected. The Expo prebuild configuration is most up-to-date. Other configurations will be updated in follow up PRs |



Description
This creates a Bitrise pipeline for creating flask builds.
Changes made:
build:ios:flask:localandbuild:android:flask:localis used by Bitrise for generating Flask Expo prebuild in CIgenerateIosBinaryselects the correct plistRelated issues
Fixes: #15563
Manual testing steps
Flasktarget is installedFlasktarget is installedyarn watchand run the appFor reference here's the latest bitrise build of this pipeline:
https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/be69d047-60ea-400d-8a39-4153f0d85f84
Screenshots/Recordings
After
Installing .ipa and .apk
flask-installs.mov
Pre-merge author checklist
Pre-merge reviewer checklist