-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
fix: disable fingerprint, repack, cache restore for Android E2E & revert Expo Updates cp-7.59.0 #22349
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. |
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: Broken Reference Causes Build Logic Failure
The condition references steps.apk-cache-restore.outputs.cache-hit but the apk-cache-restore step is now commented out. This causes the build step to always run since the condition evaluates to false, which may be intentional but creates a broken reference to a non-existent step.
.github/workflows/build-android-e2e.yml#L136-L137
metamask-mobile/.github/workflows/build-android-e2e.yml
Lines 136 to 137 in b13c860
| - name: Build Android E2E APKs | |
| if: ${{ steps.apk-cache-restore.outputs.cache-hit != 'true' }} |
Bug: Broken Dependency Halts Artifact Upload
The upload step references steps.determine-target-paths.outputs.apk-target-path and steps.determine-target-paths.outputs.artifact_name but the determine-target-paths step is commented out. This causes empty path values, making the artifact upload fail with if-no-files-found: error.
.github/workflows/build-android-e2e.yml#L248-L256
metamask-mobile/.github/workflows/build-android-e2e.yml
Lines 248 to 256 in b13c860
| - name: Upload Android APK | |
| id: upload-apk | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ inputs.build_type }}-${{ inputs.metamask_environment }}-release.apk | |
| path: ${{ steps.determine-target-paths.outputs.apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.apk | |
| retention-days: 7 | |
| if-no-files-found: error |
Bug: Commented Code Disrupts Upload Workflow
The upload step references steps.determine-target-paths.outputs.test-apk-target-path and steps.determine-target-paths.outputs.artifact_name but the determine-target-paths step is commented out. This causes empty path values, making the test APK upload fail with if-no-files-found: error.
.github/workflows/build-android-e2e.yml#L257-L265
metamask-mobile/.github/workflows/build-android-e2e.yml
Lines 257 to 265 in b13c860
| - name: Upload Android Test APK | |
| id: upload-test-apk | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ inputs.build_type }}-${{ inputs.metamask_environment }}-release-androidTest.apk | |
| path: ${{ steps.determine-target-paths.outputs.test-apk-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}-androidTest.apk | |
| retention-days: 7 | |
| if-no-files-found: error |
Bug: Configuration Error Blocks AAB Upload
The upload step references steps.determine-target-paths.outputs.aab-target-path and steps.determine-target-paths.outputs.artifact_name but the determine-target-paths step is commented out. This causes empty path values, making the AAB upload fail (though continue-on-error: true prevents workflow failure).
.github/workflows/build-android-e2e.yml#L266-L275
metamask-mobile/.github/workflows/build-android-e2e.yml
Lines 266 to 275 in b13c860
| - name: Upload Android AAB | |
| id: upload-aab | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ inputs.build_type }}-${{ inputs.metamask_environment }}-release.aab | |
| path: ${{ steps.determine-target-paths.outputs.aab-target-path }}/${{ steps.determine-target-paths.outputs.artifact_name }}.aab | |
| retention-days: 7 | |
| if-no-files-found: warn | |
| continue-on-error: true |
Bug: Empty Outputs Cripple Dependent Workflows
The job outputs reference steps.determine-target-paths.outputs.* but the determine-target-paths step is commented out. This causes all these output values to be empty, breaking any downstream workflows or jobs that depend on these outputs.
.github/workflows/build-android-e2e.yml#L41-L45
metamask-mobile/.github/workflows/build-android-e2e.yml
Lines 41 to 45 in b13c860
| aab-uploaded: ${{ steps.upload-aab.outcome == 'success' }} | |
| apk-target-path: ${{ steps.determine-target-paths.outputs.apk-target-path }} | |
| test-apk-target-path: ${{ steps.determine-target-paths.outputs.test-apk-target-path }} | |
| aab-target-path: ${{ steps.determine-target-paths.outputs.aab-target-path }} | |
| artifact_name: ${{ steps.determine-target-paths.outputs.artifact_name }} |
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: Essential File Missing, Build Process Fails.
The build script calls node "${__DIRNAME__}/update-expo-channel.js" but this file was deleted in the PR. This will cause all builds to fail with a file not found error when the script attempts to update Expo channel configuration.
scripts/build.sh#L809-L812
metamask-mobile/scripts/build.sh
Lines 809 to 812 in 562bc6c
| fi | |
| # Update Expo channel configuration based on environment | |
| echo "Updating Expo channel configuration..." | |
| node "${__DIRNAME__}/update-expo-channel.js" |
…rties on githuh with a different distribution of resources, retry logic for assemble apk
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: Remove Dead Code Breaking Builds.
The build script calls update-expo-channel.js which was deleted in this PR, causing all builds to fail with a file-not-found error. This leftover reference needs to be removed since Expo Updates functionality has been completely removed.
scripts/build.sh#L852-L855
metamask-mobile/scripts/build.sh
Lines 852 to 855 in 9d8734c
| fi | |
| # Update Expo channel configuration based on environment | |
| echo "Updating Expo channel configuration..." | |
| node "${__DIRNAME__}/update-expo-channel.js" |
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #22349 +/- ##
==========================================
- Coverage 77.87% 77.86% -0.02%
==========================================
Files 3824 3825 +1
Lines 97821 98103 +282
Branches 19163 19236 +73
==========================================
+ Hits 76181 76388 +207
- Misses 16437 16481 +44
- Partials 5203 5234 +31 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|



Description
Changelog
CHANGELOG entry:
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Disables Android E2E fingerprint/cache/repack, adds reliable test APK handling, and removes Expo Updates/OTA across app, iOS, and dependencies.
.github/workflows/build-android-e2e.yml.scripts/build.shwith GitHub-optimized Gradle props, retry, and output verification; wired formain/flaskand legacyreleaseE2E.testBinaryPathfallbacks in.detoxrc.jsfor all Android variants.android/gradle.properties.github(lower heap/workers, disable VFS watch, x86_64 arch).ota.config.js,app/constants/ota.ts,app/__mocks__/expo-updates.ts,ios/Expo.plist,scripts/update-expo-channel.js.app/components/Views/Settings/AppInformation/index.jsandindex.js(removeexpo-asset).jest.config.js.app.config.js(remove updates/runtime config; keep core plugins only).ios/Podfile/Podfile.lockto dropexpo-updates/related pods; removeExpo.plistreferences in Xcode project.expo-assetandexpo-updatesfrompackage.json; update to7.60.0; lockfile pruned accordingly.CODEOWNERS(removescripts/update-expo-channel.js; add card slice path)..js.env.example.Written by Cursor Bugbot for commit 0adea28. This will update automatically on new commits. Configure here.