-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[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] |
.github/actions/javascript/checkAndroidStatus/checkAndroidStatus.ts
Outdated
Show resolved
Hide resolved
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.
Looking pretty good, lets try it! Documenting the Fastlane params is very helpful
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.
Looking good. I left a couple of small comments
.github/actions/javascript/checkAndroidStatus/checkAndroidStatus.ts
Outdated
Show resolved
Hide resolved
Co-authored-by: Carlos Martins <[email protected]>
Co-authored-by: Carlos Martins <[email protected]>
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.
LGTM
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 🚀
|
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.yml
workflow 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-2
on 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-2
to 100% and start the slow rollout of9.0.49-2
.9.0.49-2
to 100% from 2% and start the rollout of9.0.50-8
.9.0.50-8
has 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 Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop