Android release process
Android release process
This document outlines the steps to take an Android application from development on your machine to production for end users. It also covers the roles of CI/CD pipelines, internal testing, beta testing, and Google Play Store validation.
Release workflow: from debug to production
Development and debug builds
- During development, you typically build the debug application on your local machine.
- Once your changes are ready, you push a Pull Request (PR) to the repository.
Continuous integration (CI)
- The CI system automatically:
- Builds the application.
- Runs linters and tests to ensure code quality.
- If the PR is approved and merged into the
main
branch:- The CI builds the release application.
- The release build is pushed to the internal tester group on both the Google Play Store and Firebase.
note
You can download pre-built APKs for every commit on the main
branch from the GitHub Actions page.
Internal testing
- Internal testers validate the release build to ensure functionality.
- Due to the app's complexity, not all features can be tested exhaustively during this phase.
Weekly beta releases
- Every week, the latest version of the
main
branch is pushed to the open beta channel. - Open beta users help test the application in real-world scenarios and report issues.
note
You can join the beta program directly through the Google Play Store.
Production release
If the beta version is stable and approved by maintainers, it is promoted to production, making it available to all users.
note
You can find the app on the Google Play Store.
Google Play Store validation
- Google validates applications when they are pushed to the open beta phase.
- Validation times can vary:
- It may take more than a week in some cases.
- Since releases are weekly, the previous beta release might still be under validation when a new beta is submitted. If this happens the previous beta is removed and not validated by Google.
- This delay does not block the release process but requires careful planning to ensure timely updates.