Skip to content

Commit 72aa82d

Browse files
committed
Усилена проверка dev deploy pipeline
1 parent fa298f0 commit 72aa82d

1 file changed

Lines changed: 44 additions & 18 deletions

File tree

.github/workflows/dev-ci.yml

Lines changed: 44 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,23 @@ jobs:
5353
docker compose -f docker-compose.dev-ci.yml build web &&
5454
docker compose -f docker-compose.dev-ci.yml run --rm web python manage.py migrate &&
5555
docker compose -f docker-compose.dev-ci.yml up -d --force-recreate &&
56+
expected_image="procollab-dev-api:${IMAGE_TAG}" &&
57+
for service in web celerys; do
58+
container="$(docker compose -f docker-compose.dev-ci.yml ps -q "$service")"
59+
if [ -z "$container" ]; then
60+
echo "Service ${service} has no running container" >&2
61+
docker compose -f docker-compose.dev-ci.yml ps >&2 || true
62+
exit 1
63+
fi
64+
65+
actual_image="$(docker inspect -f '{{.Config.Image}}' "$container")"
66+
echo "Service ${service}: container=${container} image=${actual_image}"
67+
if [ "$actual_image" != "$expected_image" ]; then
68+
echo "Service ${service} uses unexpected image: ${actual_image}, expected ${expected_image}" >&2
69+
docker compose -f docker-compose.dev-ci.yml ps >&2 || true
70+
exit 1
71+
fi
72+
done &&
5673
5774
install -d /etc/nginx/procollab/includes &&
5875
install -m 644 deploy/nginx/host/includes/proxy_app.inc /etc/nginx/procollab/includes/proxy_app.inc &&
@@ -83,28 +100,37 @@ jobs:
83100
exit 1
84101
fi &&
85102
86-
celery_status="" &&
87-
celery_ping="" &&
88-
for attempt in $(seq 1 24); do
89-
celery_status="$(docker inspect -f '{{.State.Status}}' api_celery 2>/dev/null || true)" &&
103+
docker compose -f docker-compose.dev-ci.yml ps
104+
105+
celery_status=""
106+
celery_ping=""
107+
celery_container=""
108+
for attempt in $(seq 1 12); do
109+
celery_container="$(docker compose -f docker-compose.dev-ci.yml ps -q celerys 2>/dev/null || true)"
110+
if [ -n "$celery_container" ]; then
111+
celery_status="$(docker inspect -f '{{.State.Status}}' "$celery_container" 2>/dev/null || true)"
112+
else
113+
celery_status="missing"
114+
fi
115+
116+
echo "Celery check attempt ${attempt}: container=${celery_container:-missing} status=${celery_status}"
90117
if [ "$celery_status" = "running" ]; then
91-
celery_ping="$(docker compose -f docker-compose.dev-ci.yml exec -T celerys sh -lc 'celery -A procollab inspect ping --timeout=10' 2>&1 || true)" &&
92-
printf '%s\n' "$celery_ping" &&
118+
celery_ping="$(docker compose -f docker-compose.dev-ci.yml exec -T celerys sh -lc 'celery -A procollab inspect ping --timeout=15' 2>&1 || true)"
119+
printf '%s\n' "$celery_ping"
93120
if printf '%s\n' "$celery_ping" | grep -q 'pong'; then
94-
echo "Celery check passed on attempt ${attempt}" &&
121+
echo "Celery check passed on attempt ${attempt}"
95122
break
96123
fi
97-
fi &&
124+
fi
98125
99126
sleep 5
100-
done &&
101-
102-
if [ "$celery_status" != "running" ]; then
103-
echo "Celery container is not running: ${celery_status}" >&2 &&
104-
exit 1
105-
fi &&
106-
107-
printf '%s\n' "$celery_ping" | grep -q 'pong' || {
108-
echo "Celery ping failed" >&2
127+
done
128+
129+
if [ "$celery_status" != "running" ] || ! printf '%s\n' "$celery_ping" | grep -q 'pong'; then
130+
echo "Celery check failed: status=${celery_status}" >&2
131+
docker compose -f docker-compose.dev-ci.yml ps >&2 || true
132+
docker compose -f docker-compose.dev-ci.yml logs --tail=200 celerys >&2 || true
133+
docker compose -f docker-compose.dev-ci.yml logs --tail=100 redis >&2 || true
134+
docker compose -f docker-compose.dev-ci.yml logs --tail=100 web >&2 || true
109135
exit 1
110-
}
136+
fi

0 commit comments

Comments
 (0)