wifi-etl/.gitea/workflows/deploy.yml
Rafael Lopes 0c59ee7e0f
Some checks failed
Deploy WiFi-ETL Prod / deploy (push) Failing after 0s
CI/CD: Ajustado pausas no Deploy
2026-04-23 09:33:04 -03:00

72 lines
2.0 KiB
YAML

name: Deploy WiFi-ETL Prod
on:
push:
branches:
- main
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Clone/Update código
run: |
set -e
if [ -d /opt/wifi-etl/.git ]; then
cd /opt/wifi-etl
git fetch origin
git reset --hard origin/main
git clean -fd
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: |
set -e
cp /home/desenvolvimento/.envs/wifi_etl/.env /opt/wifi-etl/.env
echo "✓ .env copiado"
- name: Build e deploy container
run: |
set -e
cd /opt/wifi-etl
docker-compose -f infra/docker-compose.prod.yml down
docker-compose -f infra/docker-compose.prod.yml build --no-cache
docker-compose -f infra/docker-compose.prod.yml up -d
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: |
set -e
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: |
set -e
docker logs --tail 20 wifi_etl_worker || true