2424 - name : Wait for services to be healthy
2525 run : |
2626 echo "Waiting for all services to be healthy..."
27- # Wait for services with health checks to be healthy (4 services) and all services to be up
28- timeout 300 bash -c 'until [ $(docker compose ps --format "{{.Health}}" | grep -c "healthy") -ge 4 ] && [ $(docker compose ps --format "{{.Status}}" | grep -c "Up") -ge 5 ]; do sleep 5; done'
27+ # Wait for services with health checks to be healthy (7 services) and all services to be up
28+ # Increased timeout to 10 minutes for CI environment
29+ timeout 600 bash -c 'while true; do
30+ echo "=== Detailed Service Status ==="
31+ docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Health}}"
32+ echo "=== Unhealthy Services ==="
33+ unhealthy_services=$(docker compose ps --format "{{.Name}} {{.Health}}" | grep -v healthy | grep -v "^[[:space:]]*$" || echo "")
34+ if [ -n "$unhealthy_services" ]; then
35+ echo "$unhealthy_services"
36+ echo "=== Logs for unhealthy services ==="
37+ for service in $(echo "$unhealthy_services" | awk "{print \$1}"); do
38+ echo "--- Logs for $service ---"
39+ docker compose logs --tail=10 "$service" || echo "No logs for $service"
40+ done
41+ else
42+ echo "All services healthy or no health check"
43+ fi
44+ healthy_count=$(docker compose ps --format "{{.Health}}" | grep -c "healthy" || echo "0")
45+ up_count=$(docker compose ps --format "{{.Status}}" | grep -c "Up" || echo "0")
46+ echo "Progress: $healthy_count/7 healthy, $up_count services up"
47+ if [ "$healthy_count" -ge 7 ] && [ "$up_count" -ge 7 ]; then
48+ echo "All services are healthy!"
49+ break
50+ fi
51+ sleep 10
52+ done'
2953 docker compose ps
3054
3155 - name : Test dashboard endpoints
@@ -45,15 +69,12 @@ jobs:
4569 run : |
4670 echo "=== Docker Compose Services Status ==="
4771 docker compose ps
48- echo "=== Traefik Logs ==="
49- docker compose logs traefik
50- echo "=== Sticker Award Logs ==="
51- docker compose logs sticker-award
52- echo "=== User Management Logs ==="
53- docker compose logs user-management
54- echo "=== Database Logs ==="
55- docker compose logs sticker-award-db
56- docker compose logs user-management-db
72+ echo "=== All Service Logs ==="
73+ docker compose logs --tail=50
74+ echo "=== Health Check Details ==="
75+ docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Health}}"
76+ echo "=== Resource Usage ==="
77+ docker stats --no-stream
5778
5879 - name : Cleanup
5980 if : always()
0 commit comments