From 738c2b12651005165fb167dd285fab35e7dcff43 Mon Sep 17 00:00:00 2001 From: Jules Rosser Date: Fri, 28 Mar 2025 15:31:18 -0700 Subject: [PATCH 1/5] skip Android release if the prod release is not fully rolled out --- .github/workflows/deploy.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a1383114e7a4..faad00234ec6 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -157,6 +157,11 @@ jobs: - name: Submit production build for Google Play review and a slow rollout if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} run: | + if [[ ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '-1' && ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '1' ]]; then + echo "Rollout is still in progress ($CURRENT). Skipping new upload." + exit 0 + fi + # Complete the previous version rollout if the current rollout percentage is not -1 or 1 if [[ ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '-1' && ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '1' ]]; then echo "Completing the previous version rollout" From f7475d85fa6925d917281591ea26296c3ecd22a8 Mon Sep 17 00:00:00 2001 From: Jules Rosser Date: Fri, 28 Mar 2025 15:31:34 -0700 Subject: [PATCH 2/5] document new process for Android releases --- .github/workflows/deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index faad00234ec6..fd678b82a089 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -157,6 +157,8 @@ jobs: - name: Submit production build for Google Play review and a slow rollout if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} run: | + # The Play Store is slow to review Android releases. To avoid halting production rollouts, we must wait for the previous release to finish rolling out before uploading a new one. + # Skip this release if the current prod release is not fully rolled out. if [[ ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '-1' && ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '1' ]]; then echo "Rollout is still in progress ($CURRENT). Skipping new upload." exit 0 From 705d54956820f97cd364af367013bf0530cfc398 Mon Sep 17 00:00:00 2001 From: Jules Rosser Date: Fri, 28 Mar 2025 15:32:37 -0700 Subject: [PATCH 3/5] fix printed statement --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fd678b82a089..9d79632b2944 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -160,7 +160,7 @@ jobs: # The Play Store is slow to review Android releases. To avoid halting production rollouts, we must wait for the previous release to finish rolling out before uploading a new one. # Skip this release if the current prod release is not fully rolled out. if [[ ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '-1' && ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '1' ]]; then - echo "Rollout is still in progress ($CURRENT). Skipping new upload." + echo "Skipping Android release because the current prod release has not fully rolled out" exit 0 fi From 6d0f1af89e60abb0638ac298bee64736a03fab4b Mon Sep 17 00:00:00 2001 From: Jules Rosser Date: Fri, 28 Mar 2025 15:34:36 -0700 Subject: [PATCH 4/5] remove obsolete step that completes prior release --- .github/workflows/deploy.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9d79632b2944..aba4ffb2c1db 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -164,14 +164,6 @@ jobs: exit 0 fi - # Complete the previous version rollout if the current rollout percentage is not -1 or 1 - if [[ ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '-1' && ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '1' ]]; then - echo "Completing the previous version rollout" - bundle exec fastlane android complete_hybrid_rollout - else - echo "Skipping the completion of the previous version rollout" - fi - # Submit the new version for review and slow rollout when it's approved bundle exec fastlane android upload_google_play_production_hybrid_rollout env: From 50dd083105fce3d6d551f6b59cb8a993815f2994 Mon Sep 17 00:00:00 2001 From: Jules Rosser Date: Fri, 4 Apr 2025 14:02:39 -0700 Subject: [PATCH 5/5] log release version when skippingAndroid prod release --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index aba4ffb2c1db..c4131ec53d9b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -160,7 +160,7 @@ jobs: # The Play Store is slow to review Android releases. To avoid halting production rollouts, we must wait for the previous release to finish rolling out before uploading a new one. # Skip this release if the current prod release is not fully rolled out. if [[ ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '-1' && ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '1' ]]; then - echo "Skipping Android release because the current prod release has not fully rolled out" + echo "Skipping Android release because the current prod release ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} has not fully rolled out" exit 0 fi