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

Closed
Julesssss opened this issue Oct 29, 2024 · 40 comments
Closed

Enable HybridApp test builds in App repo #51636

Julesssss opened this issue Oct 29, 2024 · 40 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

@Julesssss
Copy link
Contributor Author

I added/updated the AdHoc iOS profiles in 1Password. Shared names with Jan.

@Julesssss
Copy link
Contributor Author

Initial iOS PR was merged, once deployed we can kick off a test build.

@Julesssss Julesssss changed the title [HOLD for payment 2024-12-16] Enable HybridApp test builds in App repo Enable HybridApp test builds in App repo Dec 11, 2024
@Julesssss
Copy link
Contributor Author

Another PR here to apply changes necessary due to our submodule changes.

@Julesssss
Copy link
Contributor Author

  • Error with Android HybridApp build
    • Sounds similar to a fix we made here
  • Error with iOS HybridApp build
    • OldApp_AdHoc with 1Pass filename

@jnowakow
Copy link
Contributor

Here are results from workflow run after updating it with new repos structure. Android failed because the branch is not in sync with main. It's because Fastfile on the brach doesn't contain necessary changes. Android should work fine on branches that are in sync with newest main.
On iOS there was problem with getting documents from 1Password. @Julesssss could you check if you are able to run this commands locally?

op document get --output ./OldApp_AdHoc.mobileprovision OldApp_AdHoc
op document get --output ./OldApp_AdHoc_Share_Extension.mobileprovision OldApp_AdHoc_Share_Extension
op document get --output ./OldApp_AdHoc_Notification_Service.mobileprovision OldApp_AdHoc_Notification_Service

@Julesssss
Copy link
Contributor Author

Hi @jnowakow, yep all three of these work correctly for me. Modifying the names causes errors.

@jnowakow
Copy link
Contributor

Hmm then I don't know where the problem is 🤔 I copied those commands from workflow so I don't know where I could do the typo

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Weekly KSv2 labels Dec 13, 2024
@melvin-bot melvin-bot bot changed the title Enable HybridApp test builds in App repo [HOLD for payment 2024-12-20] Enable HybridApp test builds in App repo Dec 13, 2024
Copy link

melvin-bot bot commented Dec 13, 2024

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

@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Dec 13, 2024
Copy link

melvin-bot bot commented Dec 13, 2024

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.75-6 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 2024-12-20. 🎊

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 2024-12-20] Enable HybridApp test builds in App repo Enable HybridApp test builds in App repo Dec 17, 2024
@jnowakow
Copy link
Contributor

@Julesssss
I see plan for proceeding with this issue as follows:

Merge PR with changes for iOS in OD. I've merged newest main and adjusted it to new repo structure. I've tested it locally and all three schemas seems to work fine.

Figure out why 1Password doesn't see apple related files that you added recently. I'm afraid I need you help here because I don't have access to 1Pass. Can you check if those files are added in the same way as other files (eg. upload-key.keystore for Android)? Maybe they have to be exported or something like that?

Figure out why validateActor is failing. I suspect it was some random issue and if we rerun the workflow this step should pass. This step wasn't modified in the meantime and was working fine before. It's also the same as in other workflows (eg. here) and there it isn't failing. If we rerun the workflow and is keeps failing then I have to investigate it.

I think that on ND side almost everything is ready. There are small corrections to do like fixing the typo in workflow name or running dev scheme when launching from terminal.

@melvin-bot melvin-bot bot added Reviewing Has a PR in review Weekly KSv2 and removed Weekly KSv2 labels Dec 18, 2024
@Julesssss Julesssss removed the Reviewing Has a PR in review label Dec 18, 2024
@Julesssss
Copy link
Contributor Author

Merge PR with changes for iOS in https://github.com/Expensify/Mobile-Expensify/pull/13297

Reviewing now 👍

Can you check if those files are added in the same way as other files (eg. upload-key.keystore for Android)? Maybe they have to be exported or something like that?

Sure, I am rushing to finish some things before going OOO but I can help with that in the new year

Figure out why validateActor is failing. I suspect it was some random issue and if we rerun the workflow this step should pass

Also sounds good

@github-project-automation github-project-automation bot moved this from In Progress to Done in [#whatsnext] #convert Dec 19, 2024
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

2 participants