

This is also handled in large part in an automated way.

This is managed using PagerDuty, accessed using a GitHub action via its API.Īnother major task that is required is preparing the release notes. The release captain is assigned in a way this role rotates among all engineers. The issue works as a playbook helping the assigned engineer, dubbed the release captain, to easily follow along. When this happens, the bug is fixed on the main branch, then cherry-picked into the release branch.Īlong with the dedicated branch, each new release also automatically gets an issue to track all steps that are required to a successful distribution, including verification of marketing materials, manual tests, and so on. This allows to simplify the process of bug fixing for any bug that is discovered in the beta phase. To handle this information in a secure way while making it available to the automation actions, the team uses GitHub Secrets.įor each new release, a new dedicated branch is automatically created. The code signing step requires access to certificates and credentials as required by TestFlight and the Play Store. For this step, the team relies on fastlane, a tool that is able to automate all the steps required to release an iOS or Android app, including building, testing, code signing, and deploying it. Similarly, although Kim does not expressly states it, the Android app can be pushed to the Play Store as a testing release. When the GitHub iOS team is ready to ship a new app, the fist step consists in build the app and upload it to TestFlight to make it available to beta testers. This workflow is shown in the image below.

The release process for GitHub mobile apps is controlled by a GitHub Actions workflow comprised of four main parallel tasks: one for the actual build/deployment itself another to ensure the whole process is properly managed in all of its aspects another leading to the redaction of a release notes document and a final one aiming to ensure work can be resumed on the main branch with a new version number. Before a build goes out to our users’ hands, we must make sure the end result is properly built, all written tests are passed, and any critical issues are captured by testing.

Shipping a mobile app is not an easy task. Using the right tools to automate the process allows the mobile team to ship a new release every week, GitHub engineer Taehun Kim explains. GitHub relies heavily on GitHub Actions to manage the release process for their iOS and Android apps.
