From 08825ebf701d3dc7cfdec063579b15e3f8972db9 Mon Sep 17 00:00:00 2001 From: Victor Lyuboslavsky <2685025+getvictor@users.noreply.github.com> Date: Wed, 11 Feb 2026 11:17:51 -0600 Subject: [PATCH] Updating Android release process (#39581) Updates per discussion with @mostlikelee See Gong for details. --- android/RELEASE.md | 60 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/android/RELEASE.md b/android/RELEASE.md index 86652a0055..10ee0e91ad 100644 --- a/android/RELEASE.md +++ b/android/RELEASE.md @@ -14,6 +14,7 @@ In `app/build.gradle.kts`, update: ```kotlin defaultConfig { + applicationId = "com.fleetdm.agent.stage" versionCode = 2 // Increment by 1 each release versionName = "1.1.0" // Semantic version for display } @@ -34,14 +35,25 @@ git commit -m "Prepare release v1.1.0" git push origin rc-minor-fleetd-android-v1.X.X ``` -## 5. Test the RC +## 5. Test the RC by releasing to the staging environment (com.fleetdm.agent.stage) -- Build and test the release candidate -- Fix any issues on the RC branch (cherry-pick fixes from main if applicable) +Prerequisites: +- Fleet server running with: + - `export FLEET_MDM_ANDROID_AGENT_PACKAGE=com.fleetdm.agent.stage` + - `export FLEET_MDM_ANDROID_AGENT_SIGNING_SHA256=uxe8ynMUe36j7avGtA2F4wHeA+gnQn6UbPP+7D3AbQQ=` +- In [Google Play Console](https://play.google.com/console) (using the "Google Play Admin" 1pass creds), add your Android MDM org ID to "Test and Release" --> "Advanced Settings" --> "Managed Google Play". +- Get the staging signing key from a previous releaser -## 6. Build signed release +### Build signed release -Ensure `keystore.properties` is configured with the release signing key. +Ensure `keystore.properties` is configured with the staging signing key: + +``` +storeFile=./qa-keystore.jks +storePassword= +keyAlias=fleet-android +keyPassword= +``` ```bash ./gradlew clean bundleRelease @@ -49,7 +61,37 @@ Ensure `keystore.properties` is configured with the release signing key. Output: `app/build/outputs/bundle/release/app-release.aab` -## 7. Upload to Google Play +### Upload to Google Play + +1. Go to [Google Play Console](https://play.google.com/console). +2. Select the Fleet staging app (`com.fleetdm.agent.stage`). +3. Navigate to "Test and release" > Production. +4. Select "Create new release" +5. Upload the signed .aab file. +6. Add release details at the bottom of the page. +7. Select Next, then Save, then select **Go to overview** in the modal that pops up. +8. You'll be redirected to **Publishing overview** page, where you need to select **Send 1 change for review**. +9. After Google approves the app, they will send an email to the Google Play console account. + +### Test the release + +Run through the testplans. + +## 6. Release to production + +Note: Only specific individuals have access to the release flow. + +### Build signed release + +Ensure `keystore.properties` is configured with the release signing key/password. + +```bash +./gradlew clean bundleRelease +``` + +Output: `app/build/outputs/bundle/release/app-release.aab` + +### Upload to Google Play 1. Go to [Google Play Console](https://play.google.com/console). 2. Select the Fleet app (`com.fleetdm.agent`). @@ -58,9 +100,9 @@ Output: `app/build/outputs/bundle/release/app-release.aab` 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. After Google approves the app, they will send an email to the main Google Play console account. -## 8. Tag the release +## 7. Tag the release After the release is uploaded, tag the RC branch: @@ -70,7 +112,7 @@ 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 +## 8. Bring version bump and CHANGELOG to main ```bash git checkout main