fix: tests v2
Some checks failed
Build and Deploy JobMaker / build (push) Failing after 9s
Build and Deploy JobMaker / deploy (push) Has been skipped
Build and Deploy JobMaker / notify (push) Failing after 2s

This commit is contained in:
Ricardo Carneiro 2025-06-17 17:06:56 -03:00
parent c9efcd12c3
commit 4b20859ef7

View File

@ -43,49 +43,43 @@ jobs:
- name: 🧪 Test container
run: |
echo "🧪 Testing container..."
# Iniciar container de teste
docker run -d --name test-container -p 8080:80 ${{ steps.meta.outputs.LATEST_TAG }}
# Aguardar nginx inicializar completamente
echo "⏳ Waiting for nginx to start..."
sleep 20
# Usar nome único baseado no timestamp
CONTAINER_NAME="test-container-$(date +%s)"
echo "🚀 Starting test container: $CONTAINER_NAME"
# Iniciar container de teste
docker run -d --name $CONTAINER_NAME -p 8080:80 ${{ steps.meta.outputs.LATEST_TAG }}
# Aguardar inicialização
echo "⏳ Waiting for container..."
sleep 15
# Verificar se container está rodando
echo "📋 Container status:"
docker ps | grep test-container
# Mostrar logs para debug
echo "📋 Container logs:"
docker logs test-container
# Verificar se nginx está rodando
echo "🔍 Checking nginx process:"
docker exec test-container ps aux | grep nginx
# Teste interno primeiro (mais confiável)
echo "🔍 Testing internal connectivity:"
docker exec test-container wget -q --spider http://localhost/ && echo "✅ Internal test OK" || exit 1
# Teste externo com retry
echo "🔍 Testing external connectivity:"
for i in {1..5}; do
if curl -f http://localhost:8080; then
echo "✅ External test OK on attempt $i"
break
else
echo "⚠️ Attempt $i failed, retrying..."
sleep 5
fi
if [ $i -eq 5 ]; then
echo "❌ All attempts failed"
docker logs test-container
if ! docker ps | grep $CONTAINER_NAME; then
echo "❌ Container not running"
docker logs $CONTAINER_NAME
docker stop $CONTAINER_NAME 2>/dev/null || true
docker rm $CONTAINER_NAME 2>/dev/null || true
exit 1
fi
done
# Parar container de teste
docker stop test-container
docker rm test-container
# Teste interno
echo "🔍 Testing nginx..."
if docker exec $CONTAINER_NAME wget -q --spider http://localhost/; then
echo "✅ Internal test passed"
else
echo "❌ Internal test failed"
docker logs $CONTAINER_NAME
docker stop $CONTAINER_NAME 2>/dev/null || true
docker rm $CONTAINER_NAME 2>/dev/null || true
exit 1
fi
# Limpeza
echo "🧹 Cleaning up test container..."
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
echo "✅ Container tests passed!"