Files
FranciaOcupada/DEPLOYMENT-SUMMARY.md
Resistencia Dev fc6bc1ab54
Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 7s
Afegit botó per ocultar/mostrar els jugadors
2025-12-14 22:06:47 +01:00

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 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:

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

  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

# 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

  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: