Repository navigation
[No QA]Update to deploy HybridApp production iOS and Android using slow rollouts - #52283
Conversation
|
On hold for https://github.com/Expensify/Expensify/issues/442751 Once we have that rolling out, I think we can merge this and begin testing. |
|
@ 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] |
Julesssss
left a comment
There was a problem hiding this comment.
Looking pretty good, lets try it! Documenting the Fastlane params is very helpful
luacmartins
left a comment
There was a problem hiding this comment.
Looking good. I left a couple of small comments
Co-authored-by: Carlos Martins <cmartins@expensify.com>
Co-authored-by: Carlos Martins <cmartins@expensify.com>
Reviewer Checklist
Screenshots/VideosAndroid: NativeAndroid: mWeb ChromeiOS: NativeiOS: mWeb SafariMacOS: Chrome / SafariMacOS: Desktop |
|
✋ 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/luacmartins in version: 9.0.63-1 🚀
|
|
🚀 Deployed to production by https://github.com/chiragsalian in version: 9.0.63-3 🚀
|
Explanation of Change
Context: We currently do not have a way to automatically release HybridApp (Expensify aka OldApp) automatically to production. This historically has been done by hand when we determine we have enough to release in an ad-hoc manner. One reason for this was the standard process to preform a “slow rollout” by increasing the percentage of users who could update due to increased users and risk for fires on HybridApp/OldApp.
Problem: We are not keeping HybridApp up to date with New Expensify functionality, the current HybridApp release for production is already ~1 month old and there has been ~4,000 new commits since then.
Solution: Automate rollouts for HybridApp with GitHub Actions using our existing
deploy.ymlworkflow with some additional logic to handle slow rollouts. At a high level I’d propose:Here is an example of the high level plan, if we did three production releases. Monday, Wednesday, and Friday.
9.0.48-2on a slow rollout. Slow rollout is a automatic thing done by Apple that updates from 1% to 100% over a 7 day period.9.0.48-2, but we have a new production release, so we’d put9.0.48-2to 100% and start the slow rollout of9.0.49-2.9.0.49-2to 100% from 2% and start the rollout of9.0.50-8.9.0.50-8has been slow rolled out for 3 days, so it would be at 5%. If we release to production today then we would update it to 100%, otherwise it would bump to 10% tomorrow automatically by Apple.Fixed Issues
Related https://github.com/Expensify/Expensify/issues/195693
Tests
Offline tests
N/A
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.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