[HOLD for payment 2024-12-16] Enable HybridApp test builds in App repo
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.
Hello, I'm from SoftwareMansion and I'll work on this
@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
Hey, sorry for the delay! I will make time for this as soon as possible. No extra details required yet.
No problem, I've started to work on other things in the meantime :)
Sorry for the delay here, I'll have time to review tomorrow!
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
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 I .dev instead of .debug is great for me. Thanks for taking care of it!
Hey @jnowakow, we've been chatting 1:1 but could you share an update on this issue please?
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
@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
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.
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
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
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.
Mobile PR merged.
Attempting to test the first of the workflows here.
Initial 2 PRs merged today. We'll need to await deployment to prod for testing...
Build seemed to be successful, we has a post build permission error with build artifacts.
Yeah, app build correctly but there was problem with uploading. I'll take a look why this path is wrong
Reviewing label has been removed, please complete the "BugZero Checklist".
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)
Second PR was merged and we're running another attempt here.
@Julesssss do you have some timeline when I can get provisioning profile, notification service profile and certificates in order to proceed with iOS?
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.
I hope registering my phone and profile will not be necessary
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)
Great thanks. I sent you the provisioning profiles and I need to think about how we provided other certificates.
I added/updated the AdHoc iOS profiles in 1Password. Shared names with Jan.