Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 7s
262 lines
6.5 KiB
Markdown
262 lines
6.5 KiB
Markdown
# ✅ Resumen Final - CI/CD Configurado
|
|
|
|
## 🎉 ¡CI/CD Configurado Exitosamente!
|
|
|
|
Has configurado un sistema completo de CI/CD para tu proyecto "Francia Ocupada" usando Gitea Actions.
|
|
|
|
## 📦 Lo que Hemos Creado
|
|
|
|
### 1. Script de Deployment (`deploy.sh`)
|
|
- ✅ Script bash que se ejecuta en el host
|
|
- ✅ Maneja todo el proceso de deployment
|
|
- ✅ Puede ejecutarse manualmente para debugging
|
|
|
|
### 2. Workflow de Gitea Actions (`.gitea/workflows/deployment.yml`)
|
|
- ✅ Se activa automáticamente en push a `main`
|
|
- ✅ Instala Node.js
|
|
- ✅ Hace checkout del código
|
|
- ✅ Ejecuta el script de deployment
|
|
|
|
### 3. Documentación Completa
|
|
- ✅ `CI-CD-README.md` - Guía general de uso
|
|
- ✅ `TROUBLESHOOTING-CICD.md` - Problemas resueltos
|
|
- ✅ `NUEVO-ENFOQUE-CICD.md` - Explicación del enfoque actual
|
|
- ✅ `DEPLOYMENT-SUMMARY.md` - Resumen de la configuración
|
|
- ✅ `monitor-deploy.sh` - Script de monitoreo
|
|
- ✅ `useful-commands.sh` - Comandos útiles
|
|
|
|
## 🚀 Cómo Usar el CI/CD
|
|
|
|
### Deployment Automático
|
|
|
|
Simplemente haz push a la rama `main`:
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "feat: Nueva funcionalidad"
|
|
git push origin main
|
|
```
|
|
|
|
El workflow se ejecutará automáticamente y desplegará tu aplicación.
|
|
|
|
### Deployment Manual
|
|
|
|
Si necesitas hacer un deployment sin hacer cambios:
|
|
|
|
```bash
|
|
# Opción 1: Commit vacío
|
|
git commit --allow-empty -m "deploy: Trigger deployment"
|
|
git push origin main
|
|
|
|
# Opción 2: Ejecutar el script directamente en el servidor
|
|
ssh usuario@servidor
|
|
cd /home/marti/Documentos/Gitea/resistencia
|
|
./deploy.sh
|
|
```
|
|
|
|
## 📊 Monitoreo
|
|
|
|
### Ver el Workflow en Gitea
|
|
```
|
|
http://gitea.local:3000/marti/FranciaOcupada/actions
|
|
```
|
|
|
|
### Verificar Estado de Contenedores
|
|
```bash
|
|
cd /home/marti/Documentos/Gitea/resistencia
|
|
docker compose -f docker-compose_prod.yml ps
|
|
```
|
|
|
|
### Ver Logs
|
|
```bash
|
|
# Todos los logs
|
|
docker compose -f docker-compose_prod.yml logs
|
|
|
|
# Logs en tiempo real
|
|
docker compose -f docker-compose_prod.yml logs -f
|
|
|
|
# Script de monitoreo interactivo
|
|
./monitor-deploy.sh
|
|
```
|
|
|
|
## 🌐 URLs de la Aplicación
|
|
|
|
Después del deployment, tu aplicación estará disponible en:
|
|
|
|
- **Frontend**: https://franciaocupada.martivich.es
|
|
- **API**: https://api.franciaocupada.martivich.es
|
|
|
|
## 🔧 Configuración del Runner
|
|
|
|
Tu runner está configurado correctamente:
|
|
|
|
```yaml
|
|
services:
|
|
gitea-runner:
|
|
image: gitea/act_runner:latest
|
|
container_name: gitea-act_runner
|
|
restart: always
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
environment:
|
|
- GITEA_INSTANCE_URL=http://gitea.local:3000
|
|
- GITEA_RUNNER_NAME=runner-01-ci-vm
|
|
- GITEA_RUNNER_LABELS=production-ready:host
|
|
- GITEA_RUNNER_REGISTRATION_TOKEN=jzLi65hxB1Rt2RgIGFglXB5RjW9ggCbq9UFX3NrS
|
|
```
|
|
|
|
## 📝 Archivos Importantes
|
|
|
|
```
|
|
resistencia/
|
|
├── .gitea/
|
|
│ └── workflows/
|
|
│ └── deployment.yml # ← Workflow de CI/CD
|
|
│
|
|
├── deploy.sh # ← Script de deployment (ejecutable)
|
|
├── docker-compose_prod.yml # ← Configuración de producción
|
|
│
|
|
├── monitor-deploy.sh # ← Monitoreo interactivo
|
|
├── useful-commands.sh # ← Comandos de referencia
|
|
│
|
|
└── Documentación:
|
|
├── CI-CD-README.md # ← Guía general
|
|
├── TROUBLESHOOTING-CICD.md # ← Problemas y soluciones
|
|
├── NUEVO-ENFOQUE-CICD.md # ← Explicación técnica
|
|
├── DEPLOYMENT-SUMMARY.md # ← Resumen de configuración
|
|
└── RESUMEN-FINAL.md # ← Este archivo
|
|
```
|
|
|
|
## 🎯 Próximos Pasos Recomendados
|
|
|
|
### 1. Probar el CI/CD
|
|
```bash
|
|
# Hacer un cambio pequeño
|
|
echo "# Test CI/CD" >> README.md
|
|
git add README.md
|
|
git commit -m "test: Verificar CI/CD"
|
|
git push origin main
|
|
|
|
# Monitorear en Gitea
|
|
# http://gitea.local:3000/marti/FranciaOcupada/actions
|
|
```
|
|
|
|
### 2. Verificar el Deployment
|
|
```bash
|
|
# Esperar 2-3 minutos para que complete
|
|
# Luego verificar:
|
|
curl -I https://franciaocupada.martivich.es
|
|
curl -I https://api.franciaocupada.martivich.es
|
|
```
|
|
|
|
### 3. Mejoras Futuras
|
|
|
|
#### Tests Automatizados
|
|
Agregar tests antes del deployment:
|
|
```yaml
|
|
- name: Run Tests
|
|
run: |
|
|
cd /home/marti/Documentos/Gitea/resistencia
|
|
npm test
|
|
```
|
|
|
|
#### Notificaciones
|
|
Configurar notificaciones de éxito/fallo (Discord, email, etc.)
|
|
|
|
#### Rollback Automático
|
|
Implementar rollback si el deployment falla
|
|
|
|
#### Staging Environment
|
|
Crear un ambiente de staging para probar antes de producción
|
|
|
|
#### Health Checks
|
|
Verificar que la aplicación responde correctamente después del deploy
|
|
|
|
#### Backup de Base de Datos
|
|
Hacer backup automático antes de cada deployment
|
|
|
|
## 🐛 Troubleshooting Rápido
|
|
|
|
### El workflow falla
|
|
1. Ver logs en Gitea Actions
|
|
2. Ejecutar `./deploy.sh` manualmente
|
|
3. Revisar `TROUBLESHOOTING-CICD.md`
|
|
|
|
### Los contenedores no inician
|
|
```bash
|
|
docker compose -f docker-compose_prod.yml logs
|
|
docker compose -f docker-compose_prod.yml restart
|
|
```
|
|
|
|
### La aplicación no responde
|
|
```bash
|
|
# Verificar contenedores
|
|
docker compose -f docker-compose_prod.yml ps
|
|
|
|
# Ver logs
|
|
docker compose -f docker-compose_prod.yml logs -f
|
|
|
|
# Reiniciar
|
|
docker compose -f docker-compose_prod.yml restart
|
|
```
|
|
|
|
## 📚 Comandos Útiles de Referencia
|
|
|
|
```bash
|
|
# Ver estado
|
|
docker compose -f docker-compose_prod.yml ps
|
|
|
|
# Ver logs
|
|
docker compose -f docker-compose_prod.yml logs -f
|
|
|
|
# Reiniciar
|
|
docker compose -f docker-compose_prod.yml restart
|
|
|
|
# Reconstruir
|
|
docker compose -f docker-compose_prod.yml up -d --build
|
|
|
|
# Detener
|
|
docker compose -f docker-compose_prod.yml down
|
|
|
|
# Deployment manual
|
|
./deploy.sh
|
|
|
|
# Monitoreo interactivo
|
|
./monitor-deploy.sh
|
|
|
|
# Ver todos los comandos
|
|
./useful-commands.sh
|
|
```
|
|
|
|
## 🎓 Lecciones Aprendidas
|
|
|
|
1. **Runners personalizados son diferentes a `ubuntu-latest`**
|
|
- No tienen todas las herramientas preinstaladas
|
|
- Necesitan configuración específica
|
|
|
|
2. **El socket de Docker no es suficiente**
|
|
- Necesitas también el binario `docker` instalado
|
|
- O ejecutar scripts en el host donde Docker está instalado
|
|
|
|
3. **Los scripts en el host son más simples**
|
|
- Más fáciles de debuggear
|
|
- Más flexibles
|
|
- Más confiables
|
|
|
|
4. **La documentación es clave**
|
|
- Ayuda a entender problemas futuros
|
|
- Facilita el mantenimiento
|
|
- Útil para otros desarrolladores
|
|
|
|
## 🎉 ¡Felicidades!
|
|
|
|
Has configurado exitosamente un sistema completo de CI/CD para tu aplicación. Ahora cada vez que hagas push a `main`, tu aplicación se desplegará automáticamente en producción.
|
|
|
|
**¡A disfrutar del deployment automático!** 🚀
|
|
|
|
---
|
|
|
|
**Última actualización**: 2025-12-13
|
|
**Versión**: 1.0
|
|
**Estado**: ✅ Funcional
|