We enjoyed the ionic1 framework for a bit to long, and swapped over to the RC1 of ionic 6 recently.
During ionic1 (which we used with cordova) we wrote a lot of automation for ourselfs, but the ionic landscape has become bigger and bigger and I’d like to hear how other users (but also Ionic) thinks we should use the tooling.
We are currently setting up a whitelabel product (we have a main git repo, each time we create a build its with our homestyle stuff, when we do a release we do a lot of replaces and things to swap scss, variables, Onesignal ID’s, Customer env’s, broken cordova resources, server names that needs deletion from capacitor config etc.). I understand Appflow is an option, but since appflow builds 1 app, per branch I think (as far as I understood). We would need to add a lot of githooks to make branches like, release-22.214.171.124-customer-1, release-126.96.36.199-customer-2 which would all point to the same commit (release-188.8.131.52).
In the new ionic 6 app we chose to go for capacitor instead of cordova, and I see that the hooks we have available now are copy before/after, update before/after, sync before/after. And when it comes to tooling I see that capacitor-configure is now known as trapeze, and it can do a lot of magic (when used in combination with the project files).
Right now, what would u believe to be the proper way of automating this and what is ionic’s standpoint on this (I am not asking to do my work, I am opening a discussion). Right now I would just use a third party tool to maintain my git tags, and based on that, spawn fastlane, use trapeze for some things like versioning, the capacitor hooks to do things at the proper moment (removing and adding variables, , and build the releases when a new tag is posted).
All summed up:
Each customer has their own resource folder which need to be regenerated every release,
Customer variables (onesignal Id’s, google play id’s, translation files,
I am open to other release strategies, but the idea would be, when a certain tag is created, then and only then, start building all customer apps for ios and android (no need to be parrallel), and submit the builds CLI wise to the android and iOS appstore (I am assuming fastlane is a good way for this, this is also what appflow uses internally).