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.