Skip to content

Commit f2c98ea

Browse files
committed
Wait for db migrate to finish
The job is started asynchronously so unless we watch it, we don't know if it was successful or not
1 parent b0bec2e commit f2c98ea

2 files changed

Lines changed: 38 additions & 2 deletions

File tree

.azuredevops/pipelines/deploy.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,4 @@ stages:
5555
scriptType: bash
5656
scriptLocation: inlineScript
5757
addSpnToEnvironment: true
58-
inlineScript: |
59-
az containerapp job start --name manage-breast-screening-dbm-${{ env }} --resource-group rg-manbrs-${{ env }}-uks
58+
inlineScript: ./scripts/bash/db_migrate.sh ${{ env }}

scripts/bash/db_migrate.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
5+
ENV=$1
6+
JOB_NAME=manage-breast-screening-dbm-${ENV}
7+
RG_NAME=rg-manbrs-${ENV}-uks
8+
TIMEOUT=300
9+
WAIT=5
10+
count=0
11+
12+
get_job_status() {
13+
az containerapp job execution show --job-execution-name "$execution_name" -n "$JOB_NAME" -g "$RG_NAME" | jq -r '.properties.status'
14+
}
15+
16+
echo Starting job "$JOB_NAME"...
17+
execution_name=$(az containerapp job start --name "$JOB_NAME" --resource-group "$RG_NAME" | jq -r '.id|split("/")[-1]')
18+
19+
while [[ $(get_job_status) = "Running" ]]; do
20+
echo The job "$execution_name" is still running...
21+
((count*WAIT > TIMEOUT)) && break
22+
((count+=1))
23+
sleep $WAIT
24+
done
25+
26+
if ((count*WAIT > TIMEOUT)); then
27+
echo "The job \"$execution_name\" timed out (${TIMEOUT}s)"
28+
exit 1
29+
fi
30+
31+
status=$(get_job_status)
32+
if [[ $status = "Succeeded" ]]; then
33+
echo The job "$execution_name" completed successfully
34+
else
35+
echo The job "$execution_name" has not completed successfully. Status: "$status"
36+
exit 2
37+
fi

0 commit comments

Comments
 (0)