diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 18ddfa2..194267a 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -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 + 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 - # Mostrar logs para debug - echo "📋 Container logs:" - docker logs 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 - # 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 - exit 1 - fi - done - - # Parar container de teste - docker stop test-container - docker rm test-container + # Limpeza + echo "🧹 Cleaning up test container..." + docker stop $CONTAINER_NAME + docker rm $CONTAINER_NAME echo "✅ Container tests passed!"