Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 7s
177 lines
5.0 KiB
Markdown
177 lines
5.0 KiB
Markdown
# 🎯 Resumen de Configuración CI/CD
|
|
|
|
## ✅ Lo que hemos hecho
|
|
|
|
### 1. Workflow de Gitea Actions
|
|
- **Archivo**: `.gitea/workflows/deployment.yml`
|
|
- **Trigger**: Push a `main` o `master`
|
|
- **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:
|
|
```bash
|
|
cd /home/marti/Documentos/Gitea/resistencia
|
|
./monitor-deploy.sh
|
|
```
|
|
|
|
O manualmente:
|
|
```bash
|
|
# 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
|
|
1. Ve a Actions en tu repositorio
|
|
2. Busca el workflow más reciente
|
|
3. Todos los pasos deberían tener un ✅ verde
|
|
4. El último paso mostrará las URLs de la aplicación
|
|
|
|
### En el Servidor
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Trigger sin cambios
|
|
git commit --allow-empty -m "test: Trigger CI/CD workflow"
|
|
git push origin main
|
|
```
|
|
|
|
### Opción C: Ejecución manual
|
|
1. Ve a http://gitea.local:3000/marti/FranciaOcupada/actions
|
|
2. Click en el workflow
|
|
3. Click en "Run workflow"
|
|
4. Selecciona la rama `main`
|
|
5. 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
|
|
|
|
1. **Docker Compose en lugar de Docker directo**
|
|
- Usamos `docker compose -f docker-compose_prod.yml` en todos los pasos
|
|
|
|
2. **Múltiples servicios**
|
|
- Cliente (Next.js)
|
|
- Servidor (Node.js + Socket.IO)
|
|
- Base de datos (PostgreSQL)
|
|
|
|
3. **Variables de entorno de producción**
|
|
- `NEXT_PUBLIC_API_URL=https://api.franciaocupada.martivich.es`
|
|
- `CORS_ORIGIN=https://franciaocupada.martivich.es`
|
|
|
|
4. **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
|