name: Deploy WiFi-ETL Prod on: push: branches: - main jobs: deploy: runs-on: self-hosted steps: - name: Clone/Update código run: | if [ -d /opt/wifi-etl/.git ]; then cd /opt/wifi-etl && git pull origin main else git clone http://10.0.120.75:3030/SEU_USUARIO/wifi-etl.git /opt/wifi-etl fi echo "✓ Código atualizado" - name: Copiar .env run: | cp /home/desenvolvimento/.envs/wifi_etl/.env /opt/wifi-etl/.env echo "✓ .env copiado" - name: Build e deploy container run: | cd /opt/wifi-etl docker-compose -f infra/docker-compose.prod.yml up -d --build echo "✓ Container iniciado" - name: Aguardar inicialização run: sleep 5 - name: Validar saúde - CRON run: | docker exec wifi_etl_worker ps aux | grep cron || echo "⚠ Cron pode não estar rodando" - name: Validar saúde - Database run: | docker exec wifi_etl_worker python3 << 'PYEOF' import psycopg2, os, sys try: conn = psycopg2.connect( host=os.getenv('DB_HOST'), port=int(os.getenv('DB_PORT', 5432)), dbname=os.getenv('DB_NAME'), user=os.getenv('DB_USER'), password=os.getenv('DB_PASSWORD') ) print("✓ Banco conectado") conn.close() except Exception as e: print(f"✗ Erro: {e}") sys.exit(1) PYEOF - name: Verificar logs iniciais if: always() run: | docker logs --tail 20 wifi_etl_worker || true