This document outlines the Continuous Integration (CI) process flow for our project. Each step describes what happens when specific branches or actions are triggered.
When a branch named release-v.x.x
is pushed, the following steps are executed:
-
Purpose:
- Updates the
CHANGELOG.md
file automatically.
- Updates the
-
Process:
- The CI pipeline executes
prepare.yaml
. - The bot updates the
CHANGELOG.md
file with relevant changes. - The bot commits the updated
CHANGELOG.md
file to the repository.
- The CI pipeline executes
-
Purpose:
- Builds the APK and AAB, uploads them to Google Play, and updates the build version.
-
Process:
- The pipeline builds the APK and AAB files.
- The AAB is uploaded to Google Play Console, targeting the
test (alpha)
environment. - The build version in
pubspec.yaml
is incremented. - The bot commits the updated
pubspec.yaml
file to the repository.
Note
- After this step, the draft AAB must be manually published via the Play Developer Console.
- Closed testing is conducted to validate the build before wider distribution.
When a Pull Request (PR) is merged, the following steps are executed:
- Purpose:
- Builds and uploads the final AAB for production.
- Process:
- Builds platform-specific packages for all target OS (Windows, Linux, Android).
- Drafts the release notes based on the changes.
- Uploads the production AAB to the Play Developer Console targeting the product environment.
- Manual Steps:
- Publishing the draft AAB to production must be done manually in the Play Developer Console.
- Conducting closed tests to ensure build quality before release.
- Automated Steps:
prepare.yaml
: UpdatesCHANGELOG.md
and commits changes.test-release.yaml
: Builds APK and AAB, uploads them to Google Play, updates the build version inpubspec.yaml
, and commits changes.release.yaml
: Builds and uploads final AAB, and drafts release notes.