From 066a271818863a8f167997cc3afd371fa14855e1 Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 17 Jun 2026 23:17:12 -0700 Subject: [PATCH 1/6] Add IS_RELEASE_READY output to deploy checkDeploymentSuccess job Co-authored-by: Cursor --- .github/workflows/deploy.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 76dae58b0fcd..6344de2288cb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -796,10 +796,12 @@ jobs: outputs: IS_AT_LEAST_ONE_PLATFORM_DEPLOYED: ${{ steps.checkDeploymentSuccessOnAtLeastOnePlatform.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED }} IS_ALL_PLATFORMS_DEPLOYED: ${{ steps.checkDeploymentSuccessOnAllPlatforms.outputs.IS_ALL_PLATFORMS_DEPLOYED }} + IS_RELEASE_READY: ${{ steps.checkReleaseReady.outputs.IS_RELEASE_READY }} + VCR_RESULT: ${{ needs.victoryChartRendererBuild.result }} ANDROID_RESULT: ${{ steps.platformResults.outputs.ANDROID_RESULT }} IOS_RESULT: ${{ steps.platformResults.outputs.IOS_RESULT }} WEB_RESULT: ${{ steps.platformResults.outputs.WEB_RESULT }} - needs: [androidBuild, androidUploadGooglePlay, androidSubmit, iosBuild, iosUploadTestflight, iosSubmit, webBuild, webDeploy] + needs: [androidBuild, androidUploadGooglePlay, androidSubmit, iosBuild, iosUploadTestflight, iosSubmit, webBuild, webDeploy, victoryChartRendererBuild] if: ${{ always() }} steps: # Determine effective result for each platform @@ -866,6 +868,17 @@ jobs: echo "IS_ALL_PLATFORMS_DEPLOYED=$isAllPlatformsDeployed" >> "$GITHUB_OUTPUT" echo "IS_ALL_PLATFORMS_DEPLOYED is $isAllPlatformsDeployed" + - name: Check release readiness + id: checkReleaseReady + run: | + isReleaseReady="false" + if [ "${{ steps.checkDeploymentSuccessOnAtLeastOnePlatform.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED }}" == "true" ] && \ + [ "${{ needs.victoryChartRendererBuild.result }}" == "success" ]; then + isReleaseReady="true" + fi + echo "IS_RELEASE_READY=$isReleaseReady" >> "$GITHUB_OUTPUT" + echo "IS_RELEASE_READY is $isReleaseReady (VCR result: ${{ needs.victoryChartRendererBuild.result }})" + createRelease: runs-on: blacksmith-2vcpu-ubuntu-2404 if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED) }} From 2d672624b692d52490eb733d41b9fe424886f92a Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 17 Jun 2026 23:17:32 -0700 Subject: [PATCH 2/6] Gate createRelease on victory-chart-renderer build success Co-authored-by: Cursor --- .github/workflows/deploy.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 6344de2288cb..acc33b017cbb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -881,7 +881,7 @@ jobs: createRelease: runs-on: blacksmith-2vcpu-ubuntu-2404 - if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED) }} + if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_RELEASE_READY) }} needs: [prep, checkDeploymentSuccess, victoryChartRendererBuild] permissions: contents: write @@ -890,6 +890,9 @@ jobs: - name: Download all workflow run artifacts uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 + - name: Verify victory-chart-renderer artifact is present + run: test -f ./victory-chart-renderer-linux-x64-artifact/victory-chart-renderer-linux-x64 + - name: Get last production release id: get_last_prod_version run: echo "LAST_PROD_VERSION=$(gh release list --repo ${{ github.repository }} --exclude-drafts --exclude-pre-releases --limit 1 --json tagName --jq '.[0].tagName')" >> "$GITHUB_OUTPUT" @@ -973,7 +976,6 @@ jobs: GITHUB_TOKEN: ${{ github.token }} - name: Upload victory-chart-renderer to GitHub Release - if: ${{ needs.victoryChartRendererBuild.result == 'success' }} run: | gh release upload "${{ needs.prep.outputs.TAG }}" --repo "${{ github.repository }}" --clobber \ "./victory-chart-renderer-linux-x64-artifact/victory-chart-renderer-linux-x64#victory-chart-renderer-linux-x64" @@ -1006,7 +1008,7 @@ jobs: # 2. CP that version bump to staging cherryPickExtraVersionBump: needs: [prep, checkDeploymentSuccess] - if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED) && needs.prep.outputs.DEPLOY_ENV == 'production' && fromJSON(needs.prep.outputs.IS_CHERRY_PICK) }} + if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_RELEASE_READY) && needs.prep.outputs.DEPLOY_ENV == 'production' && fromJSON(needs.prep.outputs.IS_CHERRY_PICK) }} uses: ./.github/workflows/cherryPick.yml secrets: inherit with: From bb211ef46c9ec57dd5aadf390487bc52c8bdd88e Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 17 Jun 2026 23:17:47 -0700 Subject: [PATCH 3/6] Gate deploy follow-up jobs on IS_RELEASE_READY Co-authored-by: Cursor --- .github/workflows/deploy.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index acc33b017cbb..34523b06c814 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -747,7 +747,7 @@ jobs: name: Post a Slack message when any platform fails to build or deploy runs-on: blacksmith-2vcpu-ubuntu-2404 if: ${{ failure() }} - needs: [androidBuild, androidUploadGooglePlay, androidUploadBrowserStack, androidUploadApplause, androidSubmit, iosBuild, iosUploadTestflight, iosUploadBrowserStack, iosUploadApplause, iosSubmit, webBuild, webDeploy] + needs: [androidBuild, androidUploadGooglePlay, androidUploadBrowserStack, androidUploadApplause, androidSubmit, iosBuild, iosUploadTestflight, iosUploadBrowserStack, iosUploadApplause, iosSubmit, webBuild, webDeploy, victoryChartRendererBuild] steps: - name: Checkout uses: useblacksmith/checkout@c9796daa2a4bdebdab5bd16be2c09a70cd4e1121 # v1 @@ -1018,8 +1018,8 @@ jobs: postSlackMessageOnSuccess: name: Post a Slack message when all platforms deploy successfully runs-on: blacksmith-2vcpu-ubuntu-2404 - if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_ALL_PLATFORMS_DEPLOYED) }} - needs: [prep, androidUploadGooglePlay, androidSubmit, iosUploadTestflight, iosSubmit, webDeploy, checkDeploymentSuccess, createRelease] + if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_ALL_PLATFORMS_DEPLOYED) && needs.victoryChartRendererBuild.result == 'success' && needs.createRelease.result == 'success' }} + needs: [prep, androidUploadGooglePlay, androidSubmit, iosUploadTestflight, iosSubmit, webDeploy, checkDeploymentSuccess, victoryChartRendererBuild, createRelease] steps: - name: 'Announces the deploy in the #announce Slack room' uses: slackapi/slack-github-action@45a88b9581bfab2566dc881e2cd66d334e621e2c # v3.0.3 @@ -1066,7 +1066,7 @@ jobs: postGithubComments: uses: ./.github/workflows/postDeployComments.yml - if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED) }} + if: ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_RELEASE_READY) }} needs: [prep, checkDeploymentSuccess, createRelease, androidBuild, iosBuild] secrets: inherit with: From d8c508a8dd22e4daafc1c73c13340db4debcf0eb Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 17 Jun 2026 23:18:03 -0700 Subject: [PATCH 4/6] Update VCR build failure messaging for blocked deploy releases Co-authored-by: Cursor --- .../workflows/buildVictoryChartRenderer.yml | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/.github/workflows/buildVictoryChartRenderer.yml b/.github/workflows/buildVictoryChartRenderer.yml index ff6639549568..6e4d7e9044a0 100644 --- a/.github/workflows/buildVictoryChartRenderer.yml +++ b/.github/workflows/buildVictoryChartRenderer.yml @@ -51,7 +51,7 @@ jobs: - name: Log victory-chart-renderer build failure if: failure() || cancelled() run: | - echo "::error::victory-chart-renderer Linux x64 build did not succeed for release ${{ inputs.release-tag }}. GitHub Release will not include victory-chart-renderer-linux-x64." + echo "::error::victory-chart-renderer Linux x64 build did not succeed for release ${{ inputs.release-tag }}. The deploy GitHub Release will not be created." - name: Announce victory-chart-renderer build failure in Slack if: failure() || cancelled() @@ -63,8 +63,26 @@ jobs: { channel: '#announce', attachments: [{ - color: 'warning', - text: `⚠️ ${process.env.AS_REPO} failed for deploy release . victory-chart-renderer-linux-x64 will not be attached.`, + color: '#DB4545', + text: `💥 ${process.env.AS_REPO} failed for deploy release . The deploy GitHub Release was blocked.`, + }] + } + env: + GITHUB_TOKEN: ${{ github.token }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + - name: Announce victory-chart-renderer build failure in deployer Slack + if: failure() || cancelled() + # v3 + uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e + with: + status: custom + custom_payload: | + { + channel: '#deployer', + attachments: [{ + color: '#DB4545', + text: `💥 ${process.env.AS_REPO} failed for deploy release . The deploy GitHub Release was blocked.`, }] } env: From aa836a2e53bd9a2c7bc824c74b8a90dd12febdc1 Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 17 Jun 2026 23:27:35 -0700 Subject: [PATCH 5/6] Remove unused IS_AT_LEAST_ONE_PLATFORM_DEPLOYED job output Co-authored-by: Cursor --- .github/workflows/deploy.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 34523b06c814..8c42102952d4 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -794,7 +794,6 @@ jobs: checkDeploymentSuccess: runs-on: blacksmith-2vcpu-ubuntu-2404 outputs: - IS_AT_LEAST_ONE_PLATFORM_DEPLOYED: ${{ steps.checkDeploymentSuccessOnAtLeastOnePlatform.outputs.IS_AT_LEAST_ONE_PLATFORM_DEPLOYED }} IS_ALL_PLATFORMS_DEPLOYED: ${{ steps.checkDeploymentSuccessOnAllPlatforms.outputs.IS_ALL_PLATFORMS_DEPLOYED }} IS_RELEASE_READY: ${{ steps.checkReleaseReady.outputs.IS_RELEASE_READY }} VCR_RESULT: ${{ needs.victoryChartRendererBuild.result }} From 4f2e7e5b6cbfe1fdc87492cebe206b0a15c8060c Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 17 Jun 2026 23:51:08 -0700 Subject: [PATCH 6/6] Skip deployer VCR alert on cancelled superseded deploys Co-authored-by: Cursor --- .github/workflows/buildVictoryChartRenderer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/buildVictoryChartRenderer.yml b/.github/workflows/buildVictoryChartRenderer.yml index 6e4d7e9044a0..42f14316807e 100644 --- a/.github/workflows/buildVictoryChartRenderer.yml +++ b/.github/workflows/buildVictoryChartRenderer.yml @@ -72,7 +72,7 @@ jobs: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} - name: Announce victory-chart-renderer build failure in deployer Slack - if: failure() || cancelled() + if: failure() # v3 uses: 8398a7/action-slack@1750b5085f3ec60384090fb7c52965ef822e869e with: