Skip to content
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

Enable HybridApp test builds in App repo #51636

Open
Julesssss opened this issue Oct 29, 2024 · 58 comments
Open

Enable HybridApp test builds in App repo #51636

Julesssss opened this issue Oct 29, 2024 · 58 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Engineering Internal Requires API changes or must be handled by Expensify staff Task Weekly KSv2

Comments

@Julesssss
Copy link
Contributor

Problem

During PR review we perform test only against ND while the users will use Hybrid App. It prevent us from finding possible bugs and problem users will face.

P/S from Jan here

Solution

Let's configure our CI/CD so it's possible to trigger AdHoc build of Hybrid App from ND repo.

@Julesssss Julesssss added Engineering Internal Requires API changes or must be handled by Expensify staff Task labels Oct 29, 2024
@Julesssss Julesssss self-assigned this Oct 29, 2024
@jnowakow
Copy link
Contributor

Hello, I'm from SoftwareMansion and I'll work on this

@jnowakow
Copy link
Contributor

@Julesssss I managed to successfully add new build type for Android and new scheme for iOS - here's draft PR.
The next step requires action from someone who has access to Firebase console and developer profile because I think it's time to generate new google-services.json, GoogleService-info.plist and create new provisioning profile.

I think that bundle id's are required for that configuration so I propose:
iOS:
com.expensify.expensifylite - Release
com.expensify.expensifylite.debug - Debug
com.expensify.expensifylite.adhoc - AdHoc

Android:
org.me.mobiexpensifyg - release
org.me.mobiexpensifyg.debug - debug
org.me.mobiexpensifyg.adhoc - adhoc

Please let me know if I should provide some additional info and when this can be accomplished

@melvin-bot melvin-bot bot added the Monthly KSv2 label Nov 1, 2024
@Julesssss
Copy link
Contributor Author

Hey, sorry for the delay! I will make time for this as soon as possible. No extra details required yet.

@jnowakow
Copy link
Contributor

jnowakow commented Nov 4, 2024

No problem, I've started to work on other things in the meantime :)

@Julesssss Julesssss added Weekly KSv2 and removed Monthly KSv2 labels Nov 4, 2024
@melvin-bot melvin-bot bot added the Overdue label Nov 12, 2024
@Julesssss
Copy link
Contributor Author

Sorry for the delay here, I'll have time to review tomorrow!

@Julesssss
Copy link
Contributor Author

Julesssss commented Nov 13, 2024

Hey @jnowakow, I can generate the Firebase apps. I'm thinking we should do .dev instead of .debug to align with Expensify/App, and to make it clear that these are dev builds.

Let me know if you see any problems with this

@Julesssss
Copy link
Contributor Author

Julesssss commented Nov 13, 2024

I have configured the iOS/Android apps in Firebase (using .dev). I haven't yet added the Android SHA certificate fingerprints, so Google SSO and other things won't work. But I think that is fine.

@jnowakow I will DM you the google services files.

@jnowakow
Copy link
Contributor

@Julesssss I .dev instead of .debug is great for me. Thanks for taking care of it!

@melvin-bot melvin-bot bot added the Overdue label Nov 22, 2024
@Julesssss
Copy link
Contributor Author

Hey @jnowakow, we've been chatting 1:1 but could you share an update on this issue please?

@melvin-bot melvin-bot bot removed the Overdue label Nov 27, 2024
@jnowakow
Copy link
Contributor

Sure!
Last update is that everything seems to work fine with provided firebase configurations. In order to proceed with iOS I'll need new provisioning profile, notification service profile and certificates. For Android I think I don't need any additional set up so I'll focus right now on creating GH workflow

@melvin-bot melvin-bot bot added Reviewing Has a PR in review Weekly KSv2 and removed Weekly KSv2 labels Nov 27, 2024
@jnowakow
Copy link
Contributor

@Julesssss here are the current changes:
old dot
new dot
I think everything is in place to test if android adhoc build is working fine

@Julesssss
Copy link
Contributor Author

Nice, I will take a look.

I assume we need to merge Mobile-Expensify first? If so can we put a hold on the App PR? And mark Mobile-Expensify as ready for review. I can also try to run a test build against this branch if we are ready.

@jnowakow
Copy link
Contributor

Thanks for review! I've answered the comments and addressed those two little TODOs.
In general yes, I think we would have to merge OD first but iOS is not 100% ready (I think nothing should break). I'm also afraid that we have to merge this PR in order to be able to run this workflow

@melvin-bot melvin-bot bot added the Weekly KSv2 label Jan 10, 2025
@Julesssss Julesssss reopened this Jan 15, 2025
@Julesssss
Copy link
Contributor Author

Thanks @jnowakow, I see Vit merged the PR.

As for the other things I will check hopefully later this week. Or perhaps next week.

@Julesssss
Copy link
Contributor Author

Are you able to build app locally and submit it to TestFlight?

As the PR was merged, we just need to look out for the next few builds, I think.

I think the bundle ids there are wrong

No problem, so right now in the console I see that the bundle IDs are identical to the production bundleID. So I think I'll need to create new profiles to match the .adhoc IDs we have chosen, right?

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Weekly KSv2 labels Jan 23, 2025
@melvin-bot melvin-bot bot changed the title [HOLD for payment 2025-01-02] Enable HybridApp test builds in App repo [HOLD for payment 2025-01-30] [HOLD for payment 2025-01-02] Enable HybridApp test builds in App repo Jan 23, 2025
@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Jan 23, 2025
Copy link

melvin-bot bot commented Jan 23, 2025

Reviewing label has been removed, please complete the "BugZero Checklist".

Copy link

melvin-bot bot commented Jan 23, 2025

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.88-7 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2025-01-30. 🎊

For reference, here are some details about the assignees on this issue:

  • @jnowakow does not require payment (Contractor)

@Julesssss Julesssss changed the title [HOLD for payment 2025-01-30] [HOLD for payment 2025-01-02] Enable HybridApp test builds in App repo Enable HybridApp test builds in App repo Jan 24, 2025
@Julesssss Julesssss removed the Awaiting Payment Auto-added when associated PR is deployed to production label Jan 24, 2025
@Julesssss
Copy link
Contributor Author

Great progress has been made this week by @mountiny and @jnowakow 🎉

I'm going to share the updates here, as the previous issue was specifically about the profiles. Here is a long thread with progress updates. We're now at the point where the workflow has permission to view the profiles, and we're updating them to include all necessary capabilities.

Here's the latest run, which is built using changes from this App PR, and this Mobile-Expensify PR.

@Julesssss
Copy link
Contributor Author

Capabilitiy issues were resolved and profiles updated. Next error is about the profile type not being for iOS App Store.

NewDot standalone AdHoc profiles also used ad-hoc though, so this should be solvable without regeneration 🤞

@Julesssss
Copy link
Contributor Author

To solve the above problem we just needed to set the Fastlane type to ad-hoc:

Image

I'm not able to push to @jnowakow's branch, so I cloned the branch here. Here's the test run.

@Julesssss
Copy link
Contributor Author

Julesssss commented Jan 24, 2025

The above change resulted in a failure with the export_method not being picked up. HOWEVER, building from @mountiny's branch with our additional changes led to a successful build. Successful QR code comment.

Image

Image

The app runs smoothly. Next step is to plan how to merge these PRs without breaking iOS dev builds. Then we should merge the workflows together.

@Julesssss
Copy link
Contributor Author

Julesssss commented Jan 24, 2025

  • Mobile-Expensify PR - can we strip out changes unrelated to AdHoc environment?
  • App PR - these seem pretty safe, but lets merge after Mobile to avoid any failing runs in the meantime

@Julesssss
Copy link
Contributor Author

  • Mobile-Expensify PR - can we strip out changes unrelated to AdHoc environment?
  • App PR - these seem pretty safe, but lets merge after Mobile to avoid any failing runs in the meantime

@jnowakow @mountiny -- I think we can go ahead and merge the PRs. We've stripped out dev changes from the App PR here. I merged main into the App PR and ran a final test run here, so we just need a review from people who aren't us three!

@mountiny
Copy link
Contributor

Lets do it!

@Julesssss
Copy link
Contributor Author

Hey @AndrewGable @arosiclair. Three of us committed changes related to iOS AdHoc builds, so a review of the App and Mobile-Expensify branches would be much appreciated. Other than the Mobile-Expensify iOS build changes they should be pretty safe as we're fixing a workflow that hasn't fully worked yet.

@Julesssss
Copy link
Contributor Author

Julesssss commented Jan 27, 2025

Both PRs are ready to go, ideally close together. I keep having to merge main into the App PR as the submodule diff is incorrectly flagged as a conflict.

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Jan 28, 2025
@melvin-bot melvin-bot bot changed the title Enable HybridApp test builds in App repo [HOLD for payment 2025-02-04] Enable HybridApp test builds in App repo Jan 28, 2025
Copy link

melvin-bot bot commented Jan 28, 2025

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.89-8 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2025-02-04. 🎊

For reference, here are some details about the assignees on this issue:

  • @jnowakow does not require payment (Contractor)

@jnowakow
Copy link
Contributor

@Julesssss probably this one was final test run 😅

@Julesssss
Copy link
Contributor Author

PRs merged. CP was requested, but failed due to a 'conflict' with the submodule commitID. Though identical, the CP failed as it can't be auto-resolved I guess. We'll have to await regular deployment.

@Julesssss Julesssss changed the title [HOLD for payment 2025-02-04] Enable HybridApp test builds in App repo Enable HybridApp test builds in App repo Jan 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Engineering Internal Requires API changes or must be handled by Expensify staff Task Weekly KSv2
Projects
Development

No branches or pull requests

3 participants