App icon indicating copy to clipboard operation
App copied to clipboard

[HOLD for payment 2024-12-16] Enable HybridApp test builds in App repo

Open Julesssss opened this issue 1 year ago • 30 comments

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 avatar Oct 29 '24 09:10 Julesssss

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

jnowakow avatar Oct 29 '24 09:10 jnowakow

@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

jnowakow avatar Oct 31 '24 08:10 jnowakow

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

Julesssss avatar Nov 04 '24 10:11 Julesssss

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

jnowakow avatar Nov 04 '24 10:11 jnowakow

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

Julesssss avatar Nov 12 '24 16:11 Julesssss

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 avatar Nov 13 '24 12:11 Julesssss

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.

Julesssss avatar Nov 13 '24 12:11 Julesssss

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

jnowakow avatar Nov 13 '24 12:11 jnowakow

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

Julesssss avatar Nov 27 '24 10:11 Julesssss

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

jnowakow avatar Nov 27 '24 11:11 jnowakow

@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

jnowakow avatar Nov 28 '24 09:11 jnowakow

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.

Julesssss avatar Nov 28 '24 10:11 Julesssss

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

jnowakow avatar Nov 28 '24 12:11 jnowakow

btw I think there is a possible improvement to this workflow to enable people to specify old dot's commit they want to build app from. It would enable building hybrid app not only with ND changes that are not merged but also with OD changes which weren't yet merged to main

jnowakow avatar Nov 28 '24 12:11 jnowakow

Okay, I will try running the action when I have a moment.

The improvement could be good, let's discuss that after the initial PRs.

Julesssss avatar Nov 28 '24 16:11 Julesssss

Mobile PR merged.

Julesssss avatar Dec 02 '24 10:12 Julesssss

Attempting to test the first of the workflows here.

Julesssss avatar Dec 02 '24 10:12 Julesssss

Initial 2 PRs merged today. We'll need to await deployment to prod for testing...

Julesssss avatar Dec 02 '24 15:12 Julesssss

^ waiting for prod deployment in order to test above PRs.

Not necessary - I ran this action here.

Julesssss avatar Dec 03 '24 10:12 Julesssss

Build seemed to be successful, we has a post build permission error with build artifacts.

Julesssss avatar Dec 03 '24 11:12 Julesssss

Yeah, app build correctly but there was problem with uploading. I'll take a look why this path is wrong

jnowakow avatar Dec 03 '24 12:12 jnowakow

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

melvin-bot[bot] avatar Dec 04 '24 01:12 melvin-bot[bot]

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

  • https://github.com/Expensify/App/pull/53214

If no regressions arise, payment will be issued on 2024-12-11. :confetti_ball:

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

  • @jnowakow does not require payment (Contractor)

melvin-bot[bot] avatar Dec 04 '24 01:12 melvin-bot[bot]

Second PR was merged and we're running another attempt here.

Julesssss avatar Dec 04 '24 16:12 Julesssss

@Julesssss do you have some timeline when I can get provisioning profile, notification service profile and certificates in order to proceed with iOS?

jnowakow avatar Dec 09 '24 14:12 jnowakow

Hey, I can get the profiles but can you just remind me whether you will need to register your phone and profile? We are currently limited and being ignore by Apple.

Julesssss avatar Dec 09 '24 14:12 Julesssss

I hope registering my phone and profile will not be necessary

jnowakow avatar Dec 09 '24 14:12 jnowakow

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

  • https://github.com/Expensify/App/pull/53530

If no regressions arise, payment will be issued on 2024-12-16. :confetti_ball:

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

  • @jnowakow does not require payment (Contractor)

melvin-bot[bot] avatar Dec 09 '24 16:12 melvin-bot[bot]

Great thanks. I sent you the provisioning profiles and I need to think about how we provided other certificates.

Julesssss avatar Dec 09 '24 16:12 Julesssss

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

Julesssss avatar Dec 10 '24 11:12 Julesssss