@@ -533,6 +533,8 @@ jobs:
533533 - name : Submit previous production build to 100%
534534 run : bundle exec fastlane ios complete_hybrid_rollout
535535 continue-on-error : true
536+ env :
537+ APPLE_ID : ${{ vars.APPLE_ID }}
536538
537539 - name : Submit production build for App Store review and a slow rollout
538540 run : bundle exec fastlane ios submit_hybrid_for_rollout
@@ -997,6 +999,68 @@ jobs:
997999 }]
9981000 }
9991001
1002+ # Upload the production-bound binary to Sentry for size analysis.
1003+ # - Cherry-pick deploys build native in this run, so we pull the .aab/.ipa from the build artifact.
1004+ # - Re-promotion deploys don't build native, so we download from the matching `<TAG>-staging`
1005+ # GitHub Release populated during the staging deploy of that version.
1006+ androidUploadSentry :
1007+ name : Upload Android build to Sentry for size analysis
1008+ needs : [prep, androidBuild, checkDeploymentSuccess]
1009+ runs-on : blacksmith-2vcpu-ubuntu-2404
1010+ if : >-
1011+ ${{ always()
1012+ && needs.prep.outputs.DEPLOY_ENV == 'production'
1013+ && fromJSON(needs.checkDeploymentSuccess.outputs.IS_RELEASE_READY) }}
1014+ continue-on-error : true
1015+ timeout-minutes : 10
1016+ outputs :
1017+ SENTRY_URL : ${{ steps.sentry-upload.outputs.SENTRY_URL }}
1018+ steps :
1019+ - name : Checkout
1020+ uses : useblacksmith/checkout@c9796daa2a4bdebdab5bd16be2c09a70cd4e1121 # v1
1021+
1022+ - name : Upload to Sentry for size analysis
1023+ id : sentry-upload
1024+ uses : ./.github/actions/composite/uploadSentrySizeAnalysis
1025+ env :
1026+ GH_TOKEN : ${{ github.token }}
1027+ SENTRY_AUTH_TOKEN : ${{ secrets.SENTRY_AUTH_TOKEN }}
1028+ with :
1029+ platform : Android
1030+ asset-name : Expensify-release.aab
1031+ artifact-name : androidBuild-artifact
1032+ staging-release-tag : ${{ needs.prep.outputs.TAG }}-staging
1033+ is-cherry-pick : ${{ needs.prep.outputs.IS_CHERRY_PICK }}
1034+
1035+ iosUploadSentry :
1036+ name : Upload iOS build to Sentry for size analysis
1037+ needs : [prep, iosBuild, checkDeploymentSuccess]
1038+ runs-on : blacksmith-2vcpu-ubuntu-2404
1039+ if : >-
1040+ ${{ always()
1041+ && needs.prep.outputs.DEPLOY_ENV == 'production'
1042+ && fromJSON(needs.checkDeploymentSuccess.outputs.IS_RELEASE_READY) }}
1043+ continue-on-error : true
1044+ timeout-minutes : 10
1045+ outputs :
1046+ SENTRY_URL : ${{ steps.sentry-upload.outputs.SENTRY_URL }}
1047+ steps :
1048+ - name : Checkout
1049+ uses : useblacksmith/checkout@c9796daa2a4bdebdab5bd16be2c09a70cd4e1121 # v1
1050+
1051+ - name : Upload to Sentry for size analysis
1052+ id : sentry-upload
1053+ uses : ./.github/actions/composite/uploadSentrySizeAnalysis
1054+ env :
1055+ GH_TOKEN : ${{ github.token }}
1056+ SENTRY_AUTH_TOKEN : ${{ secrets.SENTRY_AUTH_TOKEN }}
1057+ with :
1058+ platform : iOS
1059+ asset-name : Expensify.ipa
1060+ artifact-name : iosBuild-artifact
1061+ staging-release-tag : ${{ needs.prep.outputs.TAG }}-staging
1062+ is-cherry-pick : ${{ needs.prep.outputs.IS_CHERRY_PICK }}
1063+
10001064 # Why is this necessary for CP-to-prod? Consider this scenario:
10011065 # 1. You close a checklist and we create a new staging version `9.0.34-0` and a new checklist
10021066 # 2. You then CP a PR to production, and in the process create `9.0.35-0`
@@ -1066,13 +1130,13 @@ jobs:
10661130 postGithubComments :
10671131 uses : ./.github/workflows/postDeployComments.yml
10681132 if : ${{ always() && fromJSON(needs.checkDeploymentSuccess.outputs.IS_RELEASE_READY) }}
1069- needs : [prep, checkDeploymentSuccess, createRelease, androidBuild, iosBuild]
1133+ needs : [prep, checkDeploymentSuccess, createRelease, androidBuild, iosBuild, androidUploadSentry, iosUploadSentry ]
10701134 secrets : inherit
10711135 with :
10721136 version : ${{ needs.prep.outputs.APP_VERSION }}
10731137 env : ${{ needs.prep.outputs.DEPLOY_ENV }}
10741138 android : ${{ needs.checkDeploymentSuccess.outputs.ANDROID_RESULT }}
10751139 ios : ${{ needs.checkDeploymentSuccess.outputs.IOS_RESULT }}
10761140 web : ${{ needs.checkDeploymentSuccess.outputs.WEB_RESULT }}
1077- android_sentry_url : ${{ needs.androidBuild .outputs.SENTRY_URL }}
1078- ios_sentry_url : ${{ needs.iosBuild .outputs.SENTRY_URL }}
1141+ android_sentry_url : ${{ needs.androidUploadSentry .outputs.SENTRY_URL }}
1142+ ios_sentry_url : ${{ needs.iosUploadSentry .outputs.SENTRY_URL }}
0 commit comments