-
Notifications
You must be signed in to change notification settings - Fork 3k
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]Add new workflow to validate that HybridApp builds on every commit #55328
Conversation
All green! Some last touches required to figure out caching and which files to run this on, then it will be ready for review. |
It will only run when these conditions are met, so since there are no changes to these files it will not run. It ran earlier before I had this filter and I've attached the results in the tests section. |
Ah thanks 👍 |
Mind reviewing @shubham1206agra ? Thanks! |
Reviewer Checklist
|
@roryabraham 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] |
name: Verify HybridApp build | ||
|
||
on: | ||
workflow_call: |
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.
Did you mean to include workflow_dispatch
trigger? workflow_call
is for reusable, callable workflows. But we don't have any such usage of this new workflow.
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.
I will remove 👍
submodules: true | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
token: ${{ secrets.OS_BOTIFY_TOKEN }} | ||
# fetch-depth: 0 is required in order to fetch the correct submodule branch |
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.
This is very slow, and most likely not necessary (though a manual git fetch may be necessary in a later step). To start, what happens if we just remove this?
Also, is "the correct submodule branch" just main in Mobile-Expensify?
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.
Also, is "the correct submodule branch" just main in Mobile-Expensify?
It's a specific Mobile-Expensify commit that is locked to the latest commit as/when each App deploy is done.
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.
Is that the case currently, or will it only be the case once #55403 is completed? Also, where do we store the current commit in Mobile-Expensify which E/App staging and production should point to?
My understanding is that currently all staging and production E/App builds use Mobile-Expensify main, but that there's consensus that this is a problem we need to fix. Am I mistaken?
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.
My understanding is that currently all staging and production E/App builds use Mobile-Expensify main, but that there's consensus that this is a problem we need to fix. Am I mistaken?
Yeah, on each App staging build we bump the submodule to the latest commit (see every other commit here).
The problem is that this leads to Mobile-Expensify changes that can break an App release candidate late in a checklist that can break the build without us realising. To solve that we plan to lock the Mobile-Expensify commit for the full checklist -- but we'll give ourselves the option to override this if we need to.
- name: Update submodule to match main | ||
run: | | ||
git submodule update --init --remote | ||
git fetch |
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.
This is also yucky. I feel like what we want is more like this:
git submodule update --init --remote --depth 1
run: | | ||
git submodule update --init --remote | ||
git fetch | ||
git checkout main |
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.
Here, you're checking out the main branch of E/App, right? Is that what we want?
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.
No, I don't think so.
@AndrewGable I think you forgot to do cd Mobile-Expensify
first.
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.
Will include in follow up
export RCT_NO_LAUNCH_PACKAGER=1 | ||
|
||
# Build iOS using xcodebuild | ||
if ! xcodebuild \ |
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.
NABish but maybe create a Fastlane lane for this build command?
oh, looks like I was too slow with my review. The slow checkouts are kind of blockerish for me (likely takes 2+ minutes and that time will only grow as time goes on). I'd be happy to address them in a follow-up. |
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
No worries - I can send a follow up to you |
Created #55805 if you want to take it over |
🚀 Deployed to staging by https://github.com/Julesssss in version: 9.0.90-0 🚀
|
🚀 Deployed to production by https://github.com/yuwenmemon in version: 9.0.90-6 🚀
|
Explanation of Change
This adds a test that verifies that the PR changes build on HybridApp using the Mobile-Expensify
main
branch. This test will only run when we think there are changes against files that have the possibility to break the HybridApp build (mainly native and/or dependency changes)Fixed Issues
$ #54323
Tests
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