[No QA][HybridApp] Fix is-hybrid-app.sh script#57484
[No QA][HybridApp] Fix is-hybrid-app.sh script#57484MonilBhavsar merged 10 commits intoExpensify:mainfrom
is-hybrid-app.sh script#57484Conversation
is-hybrid-app.sh scriptis-hybrid-app.sh script
|
@MonilBhavsar 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] |
|
I think we should run the builds here to verify if the script changes didn't break the deployment on CI overall |
@mateuuszzzzz, you mean adhoc build? |
Hi! Yes, I was thinking about creating adhoc builds |
|
🚧 @MonilBhavsar has triggered a test hybrid app build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪
|
|
@MonilBhavsar looks like everything is fine here, we can proceed further with this PR |
|
cc @Julesssss as you might want to take a look at this |
MonilBhavsar
left a comment
There was a problem hiding this comment.
Looks good to me. @Julesssss if you want to take a final look and merge
Reviewer Checklist
Screenshots/VideosAndroid: NativeAndroid: mWeb ChromeiOS: NativeiOS: mWeb SafariMacOS: Chrome / SafariMacOS: Desktop |
Julesssss
left a comment
There was a problem hiding this comment.
Nice find and improvement 🎉
Scripts are testing well for me -- I didn't run the full builds though. Lets keep an eye out for workflows over the next couple of days.
|
✋ 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/MonilBhavsar in version: 9.1.9-0 🚀
|
|
🚀 Deployed to staging by https://github.com/MonilBhavsar in version: 9.1.9-0 🚀
|
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.1.9-8 🚀
|

Explanation of Change
Slack thread: https://swmansion.slack.com/archives/C01GTK53T8Q/p1740565655682309
is-hybrid-app.shwas exiting every time any command failed with a non-zero status due toset -eat the beginning. This script is used in many other scripts to control the flow. The previous approach led to mysterious issues that were hard to debug.The PR changes the implementation of
is-hybrid-app.sh:set -eis no longer used and we handle more cases explicitly and verboselyjqis installed. If it isn't, we prompt the user with an errorstderr, so even if we assign the output to a variable, it should now be verbose in case of any errors.Fixed Issues
$
PROPOSAL:
Tests
Verify that
is-hybrid-app.sh,npm i,npm run {ios,android}works correctly when:a)
Mobile-Expensifydirectory does not exist (assumes standalone NewDot)b)
Mobile-Expensifydirectory exists and is empty (assumes standalone NewDot)c)
Mobile-Expensifydirectory exists andMobile-Expensify/package.jsonexists (assumes HybridApp)d)
Mobile-Expensifydirectory exists andMobile-Expensify/package.jsonexists, but somehow package name is incorrect. (assumes standalone NewDot)When
jqis not installedrun-build.sh,clean.sh,postInstall.shshould exit immediately when we reachjqcheck inis-hybrid-app.sh.jq is not installed. Please install jq and try againshould be printed.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))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
MacOS: Desktop