Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 7s
5.0 KiB
5.0 KiB
🎯 Resumen de Configuración CI/CD
✅ Lo que hemos hecho
1. Workflow de Gitea Actions
- Archivo:
.gitea/workflows/deployment.yml - Trigger: Push a
mainomaster - Runner:
production-ready(tu runner configurado) - Acciones:
- ✅ Checkout del código
- ✅ Configuración de Node.js 20
- ✅ Detención de contenedores anteriores
- ✅ Limpieza de imágenes antiguas
- ✅ Construcción de imágenes Docker
- ✅ Despliegue con docker-compose_prod.yml
- ✅ Verificación de estado
- ✅ Logs de debugging
2. Documentación
- CI-CD-README.md: Guía completa de uso y troubleshooting
- monitor-deploy.sh: Script interactivo de monitoreo
3. Commit y Push
- ✅ Commit realizado:
273a228 - ✅ Push a origin/main completado
- ✅ Workflow debería estar ejecutándose ahora
🚀 Próximos Pasos
1. Verificar que el Workflow se está ejecutando
Abre tu navegador y ve a:
http://gitea.local:3000/marti/FranciaOcupada/actions
Deberías ver el workflow "CI/CD - Francia Ocupada (La Resistencia)" ejecutándose.
2. Monitorear el Despliegue
Desde tu servidor donde está el runner, ejecuta:
cd /home/marti/Documentos/Gitea/resistencia
./monitor-deploy.sh
O manualmente:
# Ver estado de contenedores
docker compose -f docker-compose_prod.yml ps
# Ver logs en tiempo real
docker compose -f docker-compose_prod.yml logs -f
3. Verificar el Despliegue
Una vez completado el workflow, verifica:
Frontend: https://franciaocupada.martivich.es API: https://api.franciaocupada.martivich.es
🔍 Cómo Saber si Funcionó
En Gitea Web UI
- Ve a Actions en tu repositorio
- Busca el workflow más reciente
- Todos los pasos deberían tener un ✅ verde
- El último paso mostrará las URLs de la aplicación
En el Servidor
# Deberías ver 3 contenedores corriendo
docker compose -f docker-compose_prod.yml ps
# Salida esperada:
# NAME STATUS PORTS
# resistencia-client Up 0.0.0.0:3000->3000/tcp
# resistencia-server Up 0.0.0.0:4000->4000/tcp
# resistencia-db Up 0.0.0.0:5432->5432/tcp
🧪 Hacer una Prueba de Despliegue
Opción A: Cambio real
# Hacer un cambio pequeño
echo "# CI/CD Test" >> README.md
git add README.md
git commit -m "test: Verificación de CI/CD"
git push origin main
Opción B: Commit vacío
# Trigger sin cambios
git commit --allow-empty -m "test: Trigger CI/CD workflow"
git push origin main
Opción C: Ejecución manual
- Ve a http://gitea.local:3000/marti/FranciaOcupada/actions
- Click en el workflow
- Click en "Run workflow"
- Selecciona la rama
main - Click en "Run"
📊 Diferencias con el Ejemplo Original
Tu Proyecto vs HolaMundo
| Aspecto | HolaMundo | Francia Ocupada |
|---|---|---|
| Imagen | Una sola imagen | 3 servicios (client, server, db) |
| Herramienta | docker build |
docker compose |
| Config | Dockerfile simple | docker-compose_prod.yml |
| Puerto | 8080 | 3000 (client), 4000 (server) |
| Complejidad | Baja | Media-Alta |
Adaptaciones Realizadas
-
Docker Compose en lugar de Docker directo
- Usamos
docker compose -f docker-compose_prod.ymlen todos los pasos
- Usamos
-
Múltiples servicios
- Cliente (Next.js)
- Servidor (Node.js + Socket.IO)
- Base de datos (PostgreSQL)
-
Variables de entorno de producción
NEXT_PUBLIC_API_URL=https://api.franciaocupada.martivich.esCORS_ORIGIN=https://franciaocupada.martivich.es
-
Verificación mejorada
- Comprueba que los 3 contenedores estén corriendo
- Muestra logs de cada servicio
🛠️ Troubleshooting Rápido
El workflow no se ejecuta
- Verifica que el runner esté corriendo:
docker ps | grep gitea-act_runner - Verifica la conexión del runner con Gitea
El workflow falla en el build
- Revisa los logs en Gitea Actions
- Construye manualmente:
docker compose -f docker-compose_prod.yml build
Los contenedores no inician
- Verifica puertos disponibles:
sudo lsof -i :3000 :4000 :5432 - Revisa logs:
docker compose -f docker-compose_prod.yml logs
La aplicación no responde
- Espera 30-60 segundos después del deploy
- Verifica que los contenedores estén "Up":
docker compose -f docker-compose_prod.yml ps - Revisa logs del cliente y servidor
📝 Archivos Creados
resistencia/
├── .gitea/
│ └── workflows/
│ └── deployment.yml # Workflow de CI/CD
├── CI-CD-README.md # Documentación detallada
├── monitor-deploy.sh # Script de monitoreo
└── DEPLOYMENT-SUMMARY.md # Este archivo
🎉 ¡Listo!
Tu proyecto ahora tiene CI/CD automático. Cada vez que hagas push a main, se desplegará automáticamente en producción.
URLs de Verificación:
- 🌐 Frontend: https://franciaocupada.martivich.es
- 🔌 API: https://api.franciaocupada.martivich.es
- 🔧 Gitea Actions: http://gitea.local:3000/marti/FranciaOcupada/actions