diff --git a/deploy/run-production-canary.sh b/deploy/run-production-canary.sh index 2c9b95c..ce0a452 100644 --- a/deploy/run-production-canary.sh +++ b/deploy/run-production-canary.sh @@ -47,10 +47,9 @@ assert_stable_ids_unchanged() { stable_ids_before=$(stable_ids) || exit 1 compose --profile assistant-canary build --build-arg "SOURCE_REVISION=$REVISION" "${services[@]}" -compose --profile assistant-canary up -d --no-build --no-deps "${services[@]}" -assert_stable_ids_unchanged -for container in "${containers[@]}"; do +wait_healthy() { + local container="$1" status="" ready="" ready="" for attempt in $(seq 1 60); do status=$(docker inspect -f '{{if .State.Health}}{{.State.Health.Status}}{{else}}unknown{{end}}' "$container" 2>/dev/null || true) @@ -58,6 +57,18 @@ for container in "${containers[@]}"; do sleep 2 done [[ "$ready" == true ]] || fail_rollback +} + +compose --profile assistant-canary up -d --no-build --no-deps research-runtime-candidate core-runtime-candidate +wait_healthy assistant-research-runtime-candidate-1 +wait_healthy assistant-core-runtime-candidate-1 +compose --profile assistant-canary up -d --no-build --no-deps cognitive-worker-candidate +wait_healthy assistant-cognitive-worker-candidate-1 +compose --profile assistant-canary up -d --no-build --no-deps creator-web-candidate +wait_healthy assistant-creator-web-candidate-1 +assert_stable_ids_unchanged + +for container in "${containers[@]}"; do image_revision=$(docker inspect -f '{{index .Config.Labels "org.opencontainers.image.revision"}}' "$container" 2>/dev/null || true) [[ "$image_revision" == "$REVISION" ]] || fail_rollback done diff --git a/tests/deployment/stable-release-set-guard_test.sh b/tests/deployment/stable-release-set-guard_test.sh index 9f6b06e..bc71253 100644 --- a/tests/deployment/stable-release-set-guard_test.sh +++ b/tests/deployment/stable-release-set-guard_test.sh @@ -5,7 +5,9 @@ root="$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)" canary="$root/deploy/run-production-canary.sh" supervisor="$root/deploy/update-supervisor.sh" -grep -Fq 'up -d --no-build --no-deps "${services[@]}"' "$canary" +grep -Fq 'up -d --no-build --no-deps research-runtime-candidate core-runtime-candidate' "$canary" +grep -Fq 'up -d --no-build --no-deps cognitive-worker-candidate' "$canary" +grep -Fq 'up -d --no-build --no-deps creator-web-candidate' "$canary" grep -Fq 'compose up -d --no-build --no-deps supervisor' "$supervisor" grep -Fq 'stable_ids_before=$(stable_ids)' "$canary" grep -Fq 'assert_stable_ids_unchanged' "$canary"