Skip to main content

Pipelines de CI/CD

ABA-backend y ABA-frontend se despliegan de forma independiente vía GitHub Actions al hacer push a main — no hay un paso de despliegue manual en ningún caso.

Pushgit push origin main
CIBuild + escaneo de secretos — solo continúa si pasa
CDConstruye la imagen y la publica en GHCR
VPSPull de la imagen nueva y reinicio del contenedor

CI: lo que se valida antes de construir nada

  • Escaneo de secretos (gitleaks) sobre el diff — un commit que incluya una credencial real no pasa CI, independientemente de si el resto del código compila.
  • Build del proyecto en modo Release — el mismo comando que un desarrollador corre localmente, no un paso distinto solo para CI.

El pipeline de CD solo se dispara después de que CI pasó sobre main — nunca se construye ni publica una imagen a partir de un commit que no pasó validación.

Protección de la rama main

  • Requiere al menos una aprobación en pull request — nada se mergea sin revisión.
  • Los checks de CI (secret scan + build) son obligatorios antes de poder mergear.
  • Force-push y borrado de la rama están deshabilitados.
  • Los archivos que afectan recursos compartidos del VPS (configuración de límites de memoria, Nginx, hardening de red) requieren revisión de code owners específicos — nadie cambia un parámetro que afecta a toda la infraestructura sin que otra persona lo revise primero.

Hook de pre-commit contra secretos

Además del escaneo en CI (que corre en GitHub, después del push), cada repo trae un hook de pre-commit versionado que corre localmente, antes de que el commit siquiera se genere — detecta patrones de credenciales antes de que lleguen a formar parte del historial de git. Se activa una sola vez por clon del repositorio.

Cada imagen se construye una sola vez

La imagen Docker se construye en GitHub Actions, nunca en el VPS — el servidor de producción solo hace pull de una imagen ya construida y probada, nunca ejecuta un build. Esto mantiene al VPS libre de herramientas de compilación y reduce la superficie de lo que corre ahí a exactamente lo que se necesita para servir tráfico.