diff --git a/.gitea/workflows/container.yml b/.gitea/workflows/container.yml index 04c00ae..d4a51d1 100644 --- a/.gitea/workflows/container.yml +++ b/.gitea/workflows/container.yml @@ -88,6 +88,24 @@ jobs: "${RUNNER_TEMP}/kubectl" --namespace default set image \ deployment/immich-sync \ "immich-sync=${IMAGE}:${COMMIT_SHA}" - "${RUNNER_TEMP}/kubectl" --namespace default rollout status \ - deployment/immich-sync \ - --timeout=5m + + for attempt in {1..60}; do + IFS='|' read -r generation observed desired updated available unavailable <<< "$( + "${RUNNER_TEMP}/kubectl" --namespace default get deployment/immich-sync \ + --output=jsonpath='{.metadata.generation}|{.status.observedGeneration}|{.spec.replicas}|{.status.updatedReplicas}|{.status.availableReplicas}|{.status.unavailableReplicas}' + )" + + echo "Rollout ${attempt}/60: generation ${observed}/${generation}, replicas ${updated}/${desired} updated, ${available}/${desired} available" + if [[ "${observed}" == "${generation}" \ + && "${updated}" == "${desired}" \ + && "${available}" == "${desired}" \ + && ( -z "${unavailable}" || "${unavailable}" == "0" ) ]]; then + echo "Deployment successfully rolled out" + exit 0 + fi + + sleep 5 + done + + "${RUNNER_TEMP}/kubectl" --namespace default describe deployment/immich-sync + exit 1