# Release process ## 1. Create RC branch ```bash git checkout main git pull origin main git checkout -b rc-minor-fleetd-android-v1.X.X ``` ## 2. Update version numbers In `app/build.gradle.kts`, update: ```kotlin defaultConfig { versionCode = 2 // Increment by 1 each release versionName = "1.1.0" // Semantic version for display } ``` - `versionCode`: Integer that must increase with each release (Google Play requirement) - `versionName`: Human-readable version string shown to users ## 3. Update CHANGELOG.md Add an entry for the new version with changes since the last release. ## 4. Commit and push RC branch ```bash git add app/build.gradle.kts CHANGELOG.md git commit -m "Prepare release v1.1.0" git push origin rc-minor-fleetd-android-v1.X.X ``` ## 5. Test the RC - Build and test the release candidate - Fix any issues on the RC branch (cherry-pick fixes from main if applicable) ## 6. Build signed release Ensure `keystore.properties` is configured with the release signing key. ```bash ./gradlew clean bundleRelease ``` Output: `app/build/outputs/bundle/release/app-release.aab` ## 7. Upload to Google Play 1. Go to [Google Play Console](https://play.google.com/console). 2. Select the Fleet app (`com.fleetdm.agent`). 3. Navigate to Release > Production. 4. Upload the signed .aab file. 5. Add release notes at the bottom of the page. 6. Select save, then select **Go to overview** in the modal that pops up. 7. You'll be redirected to **Publishing overview** page, where you need to select **Sent to review**. 6. After Google approves the app, they will send an email tothe main Google Play console account. ## 8. Tag the release After the release is uploaded, tag the RC branch: ```bash git checkout rc-minor-fleetd-android-v1.X.X git tag fleetd-android-v1.X.X git push origin rc-minor-fleetd-android-v1.X.X ``` ## 9. Bring version bump and CHANGELOG to main ```bash git checkout main git pull origin main git checkout -b bring-fleetd-android-v1.X.X-to-main git checkout rc-minor-fleetd-android-v1.X.X -- android/app/build.gradle.kts android/CHANGELOG.md git commit -m "Update version and CHANGELOG for fleetd-android-v1.X.X" git push origin bring-fleetd-android-v1.X.X-to-main ``` Then open a PR to merge `bring-fleetd-android-v1.X.X-to-main` into `main`. This brings only the version bump and CHANGELOG updates to main, not other RC changes.