9191 ENV_MODIFIER : ${{ inputs.env || 'dev' }}
9292 TEST_ACO : ${{ inputs.test_aco || 'dev' }}
9393 TENV_GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
94- VERIFICATION_RETRIES : 90 # 90 retries with 10s sleep = max 900s or 15m. Verification jobs run in parallel.
95- VERIFICATION_SLEEP : 10
9694
9795jobs :
9896 migrate_db :
@@ -155,9 +153,9 @@ jobs:
155153 # FARGATE FIXUP: Can remove this step
156154 - name : Get AMIs
157155 run : |
158- export BCDA_AMI=` aws ec2 describe-images --region ${{ vars.AWS_REGION }} --filters 'Name=tag:app,Values=bcda-app' 'Name=tag:version,Values=${{ env.RELEASE_VERSION }}' --query 'Images[*][CreationDate,ImageId] | reverse(sort_by(@,&[0])) | [0][1]' --output text`
156+ export BCDA_AMI=$( aws ec2 describe-images --region ${{ vars.AWS_REGION }} --filters 'Name=tag:app,Values=bcda-app' 'Name=tag:version,Values=${{ env.RELEASE_VERSION }}' --query 'Images[*][CreationDate,ImageId] | reverse(sort_by(@,&[0])) | [0][1]' --output text)
159157 echo "BCDA_AMI=$BCDA_AMI" >> $GITHUB_ENV
160- export WORKER_AMI=` aws ec2 describe-images --region ${{ vars.AWS_REGION }} --filters 'Name=tag:app,Values=bcda-worker' 'Name=tag:version,Values=${{ env.RELEASE_VERSION }}' --query 'Images[*][CreationDate,ImageId] | reverse(sort_by(@,&[0])) | [0][1]' --output text`
158+ export WORKER_AMI=$( aws ec2 describe-images --region ${{ vars.AWS_REGION }} --filters 'Name=tag:app,Values=bcda-worker' 'Name=tag:version,Values=${{ env.RELEASE_VERSION }}' --query 'Images[*][CreationDate,ImageId] | reverse(sort_by(@,&[0])) | [0][1]' --output text)
161159 echo "WORKER_AMI=$WORKER_AMI" >> $GITHUB_ENV
162160 - name : Install Cosign to verify tenv and tofu installs
163161 uses : sigstore/cosign-installer@d58896d6a1865668819e1d91763c7751a165e159 # v3.9.2
@@ -199,84 +197,56 @@ jobs:
199197 runs-on : codebuild-bcda-app-${{github.run_id}}-${{github.run_attempt}}
200198 environment : ${{ inputs.env != '0' && inputs.env || 'dev' }}
201199 steps :
200+ - uses : aws-actions/configure-aws-credentials@v4
201+ with :
202+ aws-region : ${{ vars.AWS_REGION }}
203+ role-to-assume : arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/delegatedadmin/developer/${{ vars.AWS_ROLE_TO_ASSUME }}
202204 - run : |
203- TRY=1
204-
205- until [ $TRY -gt $VERIFICATION_RETRIES ]; do
206- BCDA_API_VERSION=`curl https://${{ vars.API_BASE_URL }}/_version | jq -R '. as $line | try (fromjson | .version) catch $line' | tr -d "\"'"`
207-
208- if [[ $BCDA_API_VERSION != ${{ env.RELEASE_VERSION }} ]]; then
209- echo "BCDA API expected release version: ${{ env.RELEASE_VERSION }} did not match curled version: ${BCDA_API_VERSION}."
210- TRY=$(($TRY + 1))
211- if [ $TRY -gt $VERIFICATION_RETRIES ]; then
212- exit 1
213- else
214- sleep $VERIFICATION_SLEEP
215- fi
216- else
217- break
218- fi
219- done
205+ aws ecs wait services-stable --cluster bcda-${{ env.RELEASE_ENV }} --services bcda-${{ env.RELEASE_ENV }}-api
206+ BCDA_API_VERSION=$(curl -Ss https://${{ vars.API_BASE_URL }}/_version | jq -R '. as $line | try (fromjson | .version) catch $line' | tr -d "\"'")
207+ if [[ $BCDA_API_VERSION != ${{ env.RELEASE_VERSION }} ]]; then
208+ echo "BCDA API expected release version: ${{ env.RELEASE_VERSION }} did not match curled version: ${BCDA_API_VERSION}."
209+ exit 1
210+ fi
220211
221212 verify_ssas_version :
222213 needs : [deploy]
223214 runs-on : codebuild-bcda-app-${{github.run_id}}-${{github.run_attempt}}
224215 environment : ${{inputs.env != '0' && inputs.env || 'dev' }}
225216 steps :
217+ - uses : aws-actions/configure-aws-credentials@v4
218+ with :
219+ aws-region : ${{ vars.AWS_REGION }}
220+ role-to-assume : arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/delegatedadmin/developer/${{ vars.AWS_ROLE_TO_ASSUME }}
226221 - run : |
227- TRY=1
228-
229- until [ $TRY -gt $VERIFICATION_RETRIES ]; do
230- BCDA_SSAS_VERSION=`curl https://${{ vars.API_BASE_URL }}/_auth | jq -R '. as $line | try (fromjson | .version) catch $line' | tr -d "\"'"`
231-
232- if [[ $BCDA_SSAS_VERSION != ${{ env.SSAS_RELEASE_VERSION }} ]]; then
233- echo "BCDA SSAS expected release version: ${{ env.SSAS_RELEASE_VERSION }} did not match curled version: ${BCDA_SSAS_VERSION}."
234- TRY=$(($TRY + 1))
235- if [ $TRY -gt $VERIFICATION_RETRIES ]; then
236- exit 1
237- else
238- sleep $VERIFICATION_SLEEP
239- fi
240- else
241- break
242- fi
243- done
222+ aws ecs wait services-stable --cluster bcda-${{ env.RELEASE_ENV }} --services bcda-${{ env.RELEASE_ENV }}-ssas
223+ BCDA_SSAS_VERSION=$(curl -Ss https://${{ vars.API_BASE_URL }}/_auth | jq -R '. as $line | try (fromjson | .version) catch $line' | tr -d "\"'")
224+ if [[ $BCDA_SSAS_VERSION != ${{ env.SSAS_RELEASE_VERSION }} ]]; then
225+ echo "BCDA SSAS expected release version: ${{ env.SSAS_RELEASE_VERSION }} did not match curled version: ${BCDA_SSAS_VERSION}."
226+ exit 1
227+ fi
244228
245- # Temporarily we need to manually verify worker is on correct version
246-
247- # # FARGATE FIXUP:
248- # This needs the 'image_tag' tag to be added to each service before this will work
249- # verify_worker_version:
250- # needs: [deploy]
251- # runs-on: codebuild-bcda-app-${{github.run_id}}-${{github.run_attempt}}
252- # environment: ${{ inputs.env != '0' && inputs.env || 'dev' }}
253- # steps:
254- # - uses: aws-actions/configure-aws-credentials@v4
255- # with:
256- # aws-region: ${{ vars.AWS_REGION }}
257- # role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/delegatedadmin/developer/${{ vars.AWS_ROLE_TO_ASSUME }}
258- # - run: |
259- # TRY=1
260-
261- # until [ $TRY -gt $VERIFICATION_RETRIES ]; do
262- # WORKER_VERSION=`aws ecs --resource-arn list-tags-for-resource arn:aws:ecs:${{ vars.AWS_REGION }}:${{ secrets.AWS_ACCOUNT_ID }}:service/bcda-${{ env.RELEASE_ENV }}/bcda-${{ env.RELEASE_ENV }}-api --query "tags[?key=='image_tag'].value | [0]" --output text`
263-
264- # if [[ $WORKER_VERSION != ${{ env.RELEASE_VERSION }} ]]; then
265- # echo "BCDA Worker expected release version: ${{ env.RELEASE_VERSION }} did not match AWS version: ${WORKER_VERSION}."
266- # TRY=$(($TRY + 1))
267- # if [ $TRY -gt $VERIFICATION_RETRIES ]; then
268- # exit 1
269- # else
270- # sleep $VERIFICATION_SLEEP
271- # fi
272- # else
273- # break
274- # fi
275- # done
229+ verify_worker_version :
230+ needs : [deploy]
231+ runs-on : codebuild-bcda-app-${{github.run_id}}-${{github.run_attempt}}
232+ environment : ${{ inputs.env != '0' && inputs.env || 'dev' }}
233+ steps :
234+ - uses : aws-actions/configure-aws-credentials@v4
235+ with :
236+ aws-region : ${{ vars.AWS_REGION }}
237+ role-to-assume : arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/delegatedadmin/developer/${{ vars.AWS_ROLE_TO_ASSUME }}
238+ - run : |
239+ aws ecs wait services-stable --cluster bcda-${{ env.RELEASE_ENV }} --services bcda-${{ env.RELEASE_ENV }}-worker
240+ WORKER_ARN=$(aws ecs list-tasks --cluster=bcda-${{ env.RELEASE_ENV }} --service-name=bcda-${{ env.RELEASE_ENV }}-worker --query 'taskArns[0]' --output text)
241+ WORKER_IMAGE=$(aws ecs describe-tasks --cluster=bcda-${{ env.RELEASE_ENV }} --tasks=$WORKER_ARN --query="tasks[0].containers[0].image" --output=text)
242+ WORKER_VERSION=${WORKER_IMAGE#*:}
243+ if [[ $WORKER_VERSION != ${{ env.RELEASE_VERSION }} ]]; then
244+ echo "BCDA Worker expected release version: ${{ env.RELEASE_VERSION }} did not match AWS version: ${WORKER_VERSION}."
245+ exit 1
246+ fi
276247
277248 smoketests :
278- # needs: [migrate_db, migrate_ssas_db, deploy, verify_api_version, verify_ssas_version, verify_worker_version]
279- needs : [migrate_db, migrate_ssas_db, deploy, verify_api_version, verify_ssas_version]
249+ needs : [migrate_db, migrate_ssas_db, deploy, verify_api_version, verify_ssas_version, verify_worker_version]
280250 uses : ./.github/workflows/smoke-tests.yml
281251 with :
282252 release_version : ${{ inputs.release_version || 'main' }}
@@ -290,8 +260,7 @@ jobs:
290260 secrets : inherit
291261
292262 notify_newrelic :
293- # needs: [migrate_db, migrate_ssas_db, deploy, verify_api_version, verify_ssas_version, verify_worker_version]
294- needs : [migrate_db, migrate_ssas_db, deploy, verify_api_version, verify_ssas_version]
263+ needs : [migrate_db, migrate_ssas_db, deploy, verify_api_version, verify_ssas_version, verify_worker_version]
295264 environment : ${{ inputs.env || 'dev' }}
296265 runs-on : codebuild-bcda-app-${{github.run_id}}-${{github.run_attempt}}
297266 steps :
@@ -322,7 +291,7 @@ jobs:
322291 - name : Notify NewRelic (Dev)
323292 if : ${{ env.RELEASE_ENV == 'dev' }}
324293 run : |
325- export BCDA_AMI=` aws ec2 describe-images --region ${{ vars.AWS_REGION }} --filters 'Name=tag:app,Values=bcda-app' 'Name=tag:version,Values=${{ env.RELEASE_VERSION }}' --query 'Images[*][CreationDate,ImageId] | reverse(sort_by(@,&[0])) | [0][1]' --output text`
294+ export BCDA_AMI=$( aws ec2 describe-images --region ${{ vars.AWS_REGION }} --filters 'Name=tag:app,Values=bcda-app' 'Name=tag:version,Values=${{ env.RELEASE_VERSION }}' --query 'Images[*][CreationDate,ImageId] | reverse(sort_by(@,&[0])) | [0][1]' --output text)
326295 python3 scripts/mark_deployment.py \
327296 --app_id ${{ env.NEWRELIC_APP_ID }} \
328297 --api_key ${{ env.NEWRELIC_API_KEY }} \
0 commit comments