From f63bf12f47f43e7fc289b093905eceaa4d4a8892 Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Thu, 23 Apr 2026 10:04:39 -0300 Subject: [PATCH] =?UTF-8?q?CI/CD:=20Melhorada=20valida=C3=A7=C3=A3o=20de?= =?UTF-8?q?=20sa=C3=BAde=20do=20cron=20e=20conex=C3=A3o=20com=20o=20banco?= =?UTF-8?q?=20de=20dados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yml | 51 ++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 6d8427b..ff3baa4 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -55,21 +55,58 @@ jobs: - name: Validar saúde - CRON run: | - docker exec wifi_etl_worker ps aux | grep cron || echo "⚠ Cron pode não estar rodando" + echo "--- Processos no container ---" + docker exec wifi_etl_worker ps aux + echo "" + echo "--- Status do cron ---" + if docker exec wifi_etl_worker ps aux | grep -v grep | grep -q cron; then + echo "✓ Cron rodando" + else + echo "✗ Cron NÃO encontrado" + exit 1 + fi + echo "" + echo "--- Próximas execuções agendadas ---" + docker exec wifi_etl_worker crontab -l || true - name: Validar saúde - Database run: | + echo "--- Testando conexão com o banco ---" docker exec wifi_etl_worker python3 << 'PYEOF' import psycopg2, os, sys + + host = os.getenv('DB_HOST', 'N/A') + port = os.getenv('DB_PORT', '5432') + dbname = os.getenv('DB_NAME', 'N/A') + user = os.getenv('DB_USER', 'N/A') + + print(f" Host: {host}:{port}") + print(f" Database: {dbname}") + print(f" User: {user}") + print("") + 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') + host=host, port=int(port), + dbname=dbname, user=user, + password=os.getenv('DB_PASSWORD'), + connect_timeout=5 ) - print("✓ Banco conectado") + cur = conn.cursor() + cur.execute("SELECT version();") + version = cur.fetchone()[0] + cur.execute("SELECT COUNT(*) FROM users;") + users = cur.fetchone()[0] + cur.execute("SELECT COUNT(*) FROM sessions;") + sessions = cur.fetchone()[0] + cur.execute("SELECT last_run_at FROM watermarks ORDER BY last_run_at DESC LIMIT 1;") + last_run = cur.fetchone() + print(f"✓ Banco conectado") + print(f" PostgreSQL: {version[:50]}") + print(f" Usuários: {users}") + print(f" Sessões: {sessions}") + print(f" Último ETL: {last_run[0] if last_run else 'nunca'}") + cur.close() conn.close() except Exception as e: print(f"✗ Erro: {e}")