- SPOT PROCESS SEPARATION STUDIO 4 PRE RELEASE UPDATE
- SPOT PROCESS SEPARATION STUDIO 4 PRE RELEASE MANUAL
- SPOT PROCESS SEPARATION STUDIO 4 PRE RELEASE ANDROID
- SPOT PROCESS SEPARATION STUDIO 4 PRE RELEASE CODE
Copy the renamed folders (with their string changes) to the android-app repo from the android-i18n repo.
SPOT PROCESS SEPARATION STUDIO 4 PRE RELEASE ANDROID
This script changes the folder names from the translation system names to android resource folder names (ie from de to values-de). On android-i18n repo, run renameall.sh script.On android-app repo, switch to the latest release branch.
SPOT PROCESS SEPARATION STUDIO 4 PRE RELEASE MANUAL
The manual trigger now on Github actions, where we can enter in the version name and number of the release to create. Now to actually run this Action: Log onto Github and select “Actions” tab, click on the “Create Release Branch”, there is a little “Run workflow” button that we can click to trigger this workflow with our inputs. This triggers our build server to see if these builds pass.Īfter this point, the release branch will be waiting for translations before we merge the PRs.
SPOT PROCESS SEPARATION STUDIO 4 PRE RELEASE UPDATE
SPOT PROCESS SEPARATION STUDIO 4 PRE RELEASE CODE
This is the create_release_branch.yml file, checked into git at the following location. We also introduced using a CHANGELOG.md file for documenting the new features and release notes that’ll be generated at the end of the process, so we no longer need to cobble together release notes when we make a new release. For our release workflow, I added versionName and versionCode to be entered in by the release engineer. Using the workflow_dispatch trigger, this offers a UI in the Github Actions tab, to enter in some user input. The first workflow I created is a manual trigger to create the release branch and submit the strings.xml for translation. Note: We aren’t automating the actual builds on Github Actions yet, the different builds happen on a separate build server when pushes to the relevant branches are created, I won’t be covering those configs in this post. Tagging a release on Github and notifying a slack channel.Getting translations back from translators.Starting a release and submitting strings.xml for translation.We now have three workflows setup on Github actions: We used Github Actions to automate more of this. This diagram below describes Git Flow (adapted from here), with our added step of submitting translations for the application: Automating more of our release process ?Īlthough we had automatic builds set up to submit releases to Google Play and Firebase, a large chunk of our release process was still a manual process. We also needed automation when the translations were received back from the translation system. Then a new requirement was added to our process: Submit the strings.xml file for translation when a new release is made. This process, although cumbersome, wasn’t too unpleasant to manage manually. Once a release was merged, we needed to do some release note creation, tagging on Github and notifying the team on Slack what the latest release contains. We would manually create this branch, change the version code and version name, push the changes and create two PRs for this (One for the merge into main and one for the merge back into develop).
We use Git Flow for our release process, which means when we are ready to release, we create a release/v5.4.0 branch from develop. In this blog post, I’ll explain different parts of our process and show you how I setup Github Actions to achieve what we needed to. I decided to turn to using Github Actions to automate as much of the process as possible. My goal was to make this process as seamless as possible for the engineer on release duty. We were starting to feel the fatigue of manually completing the exact same steps for every release. This meant that our release process started to get a bit more tedious as more steps were introduced into making a new release for the Google Play Store. At Over, we’ve recently translated our app into 12 new languages.