Skip to content

Commit a019bad

Browse files
committed
fix: db upgrade wait conditions
1 parent 980152b commit a019bad

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

k8s/db_upgrade.sh

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,24 @@ echo "::endgroup::"
6161
echo "::group::Apply Kubernetes Job"
6262
kubectl apply --filename $KUBERNETES_DEPLOYMENT_REPO_PATH/infrastructure/$ENVIRONMENT_NAME/job/$KUBERNETES_DEPLOYMENT_NAME-migrate.yml
6363
echo "Waiting for migration job to complete ..."
64-
kubectl wait --for=condition=complete --timeout 60s job/$KUBERNETES_DEPLOYMENT_NAME-migrate
64+
65+
set +e
66+
# wait for completion as background process - capture PID
67+
kubectl wait --for=condition=complete --timeout 60s job/$KUBERNETES_DEPLOYMENT_NAME-migrate &
68+
completion_pid=$!
69+
70+
# wait for failure as background process - capture PID
71+
kubectl wait --for=condition=failed --timeout 60s job/$KUBERNETES_DEPLOYMENT_NAME-migrate && exit 1 &
72+
failure_pid=$!
73+
74+
# capture exit code of the first subprocess to exit
75+
wait -n $completion_pid $failure_pid
76+
77+
# store exit code in variable
78+
exit_code=$?
79+
80+
set -e
81+
6582
kubectl logs job/$KUBERNETES_DEPLOYMENT_NAME-migrate
6683
kubectl delete job/$KUBERNETES_DEPLOYMENT_NAME-migrate
6784
echo "::endgroup::"
@@ -71,4 +88,6 @@ echo "::group::Get Alembic upgraded revision"
7188
ALEMBIC_UPGRADED_REV=$(kubectl exec -i deployment/${KUBERNETES_DEPLOYMENT_NAME} -- alembic current 2>/dev/null || true)
7289
echo "ALEMBIC_UPGRADED_REV=${ALEMBIC_UPGRADED_REV:0:12}" >> $GITHUB_OUTPUT
7390
echo "Alembic upgraded revision: $ALEMBIC_UPGRADED_REV"
74-
echo "::endgroup::"
91+
echo "::endgroup::"
92+
93+
exit $exit_code

0 commit comments

Comments
 (0)