This led us to a solution that we’re proud of, and wanted to share with others who may be looking for a similar solution. The basic idea was that we set up a tagging process that was kicked off either through a manual workflow dispatch or a scheduled run. The tag being created triggers the release workflow, which receives the tag information and creates the release off of it.
We can now check out the main branch that we’ll be bumping the version off of:
Now that our version has been bumped in the native code, we can check out a branch and make a PR for these changes:
Now that we have that added, the last step in our action is just to run it:
If you want to see all the pieces put together, you can check out this gist.
The releasing process is very specific to each project, and can vary depending on how you want to do certs, what set up steps you have, how you build your app, what fastlane commands you use, etc… Because of this and for simplicity, I’ll just show the basic set up of our release file, and leave the actual building and upload process out.
The only other set up step after that is to ensure we checked out the correct ref and set the correct release stage. That looks like this:
Once you get the building/releasing working in CI, you should be all set with an automated workflow of tagging and releasing both beta and production builds, with the click of a button and on a regular cadence of your choosing 🎉
Dominic is a Senior Software Engineer at Echobind with a focus on React Native, NextJS, and GraphQL. Outside of his job, he can be found watching soccer, exploring the PNW with his family, or getting way too invested in a random sport like cycling or ping pong.