[No QA] Fix Android staging deploy: build AAB for Release variant#83288
[No QA] Fix Android staging deploy: build AAB for Release variant#83288roryabraham merged 1 commit intomainfrom
Conversation
Two changes to fix staging Android deploys via Rock: 1. Pass aab: true to Rock for Release builds. Google Play requires AAB, and Fastlane used bundleRelease to produce it. The Rock migration inadvertently switched to assembleRelease (APK only). Additionally, Fullstory's Gradle plugin relocates the APK from build/outputs to build/intermediates, causing Rock's artifact detection to fail. Building AAB sidesteps this since Fullstory doesn't relocate bundles. 2. Revert the ineffective appName: 'app' from rock.config.mjs. The Mobile-Expensify Android project has no app/ subdirectory (it IS the app module), so the RN CLI config validation rejects it and APP_NAME stays empty regardless. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@codex review |
|
@mjasikowski Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
🚧 @roryabraham has triggered a test Expensify/App build. You can view the workflow run here. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
@roryabraham looks like this was merged without a test passing. Please add a note explaining why this was done and remove the |
|
not waiting for reassure since this is a CI-only change that's blocking deploy |
|
Codex Review: Didn't find any major issues. Bravo. ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
[No QA] Fix Android staging deploy: build AAB for Release variant (cherry picked from commit e7d5639) (cherry-picked to staging by roryabraham)
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 @roryabraham has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Cherry-picked to staging by https://github.com/roryabraham in version: 9.3.25-4 🚀
|
1 similar comment
|
🚀 Cherry-picked to staging by https://github.com/roryabraham in version: 9.3.25-4 🚀
|
|
🚀 Cherry-picked to staging by https://github.com/roryabraham in version: 9.3.25-10 🚀
|
Explanation of Change
Two changes to fix staging Android deploys via Rock Remote Build:
Build AAB for Release variant (
aab: true). Google Play requires AAB format, and the pre-Rock Fastlane setup usedbundleReleaseto produce it. The Rock migration inadvertently switched toassembleRelease(APK only). Additionally, Fullstory's Gradle plugin relocates the built APK frombuild/outputs/tobuild/intermediates/, causing Rock's artifact detection to fail. Building AAB sidesteps this since Fullstory doesn't relocate bundles.Revert the ineffective
appName: 'app'fromrock.config.mjs(added in [No QA] Fix Rock Android staging deploy artifact detection #83282). The Mobile-Expensify Android project is a flat single-module Gradle project with noapp/subdirectory -- it IS the app module directly. The RN CLI config validation checks that the directory exists and rejects it, soAPP_NAMEstays empty regardless.A companion PR in Mobile-Expensify (https://github.com/Expensify/Mobile-Expensify/pull/13868) adds the missing Fullstory APK copy-back hook for the Release variant, matching the existing pattern for Adhoc and Debug. This ensures APK builds also work correctly if needed in the future.
Fixed Issues
N/A - CI/CD infrastructure fix for staging deploy failure: https://github.com/Expensify/App/actions/runs/22333801513/job/64621981074
Tests
FORCE_NATIVE_BUILD=trueon this branch and verify the Android build succeedsOffline tests
N/A - CI/CD change only
QA Steps
N/A - CI/CD change only, no user-facing changes
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
N/A - CI/CD change only
Android: mWeb Chrome
N/A - CI/CD change only
iOS: Native
N/A - CI/CD change only
iOS: mWeb Safari
N/A - CI/CD change only
MacOS: Chrome / Safari
N/A - CI/CD change only
Made with Cursor