[No QA] Create iOS RN artifacts workflow - #88523
roryabraham merged 22 commits into
Conversation
|
|
|
WIP |
|
@roryabraham feel free to trigger one more test workflow from this PR |
|
new publish workflow: https://github.com/Expensify/App/actions/runs/29512892098 |
There was a problem hiding this comment.
This again doesn't need to be a composite action I don't think. Everywhere you're using it, the job has already run useblacksmith/checkout. So you can just put the logic in a bash script and then execute it as a step at each callsite.
There was a problem hiding this comment.
After the refactor, it's a three-step composite action, so I'd leave it as it is. Nevertheless, I don't have strong preference, so I'll leave the final decision to you
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f47146edea
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/roryabraham in version: 9.4.44-0 🚀
|
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.4.44-6 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Adds a single orchestrator workflow (
publishReactNativeArtifacts.yml) that is the one entry point for building and publishing our React Native prebuilt artifacts. It triggers on push to main or manual dispatch, runs the shared verify, validate, and ref resolution phases once, then fans out to two platform workflows that build and publish the iOS and Android artifacts in parallel. Because both platforms are always built together, they never drift out of sync.The iOS workflow builds the prebuilt artifacts (
XCFrameworkplusdSYMs) and publishes them to GitHub Packages Maven, with separate matrix branches for Standalone and HybridApp. It runs in stages (verify, then build slice, then compose, then publish), building Debug and Release variants for both the device and the simulator in parallel and combining them into a universalXCFramework. The Android workflow follows the same conventions.The previously duplicated
verifyPatchesjob was extracted into a reusable workflow (verifyReactNativePatches.yml) consumed by both platforms. Two composite actions were introduced to deduplicate steps.fetchReactNativePrebuildpulls the prebuild scripts from the upstream React Native repository, anddetermineNewPatchedRNVersionwrapsgetNewPatchedRNVersion.sh.The Hermes V1 patch hash salt was dropped, because Hermes V1 is on by default in this React Native version.
Fixed Issues
$ #86437
PROPOSAL:
MOBILE-EXPENSIFY: https://github.com/Expensify/Mobile-Expensify/pull/13918
Tests
Offline tests
QA Steps
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
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari