Saltar a contenido

ADR-024: Forgejo como SCM + CI/CD

Estado: aceptado

Contexto

SmallCountry necesitaba un sistema de control de versiones autoalojado que además proporcionara CI/CD nativo sin depender de servicios externos. GitHub, GitLab y Gitea fueron evaluados. El sistema debía cumplir con los principios de soberanía operativa (principio 7) y reconstruibilidad total (principio 2).

Decisión

Forgejo como plataforma única de SCM + CI/CD. Incluye: - Repositorios git con interfaz web - Forgejo Actions como sistema de CI/CD nativo (compatible con GitHub Actions syntax) - Registro OCI integrado para imágenes Docker - Issues y pull requests para gobernanza de cambios

Alternativas consideradas

Opción Por qué se descartó
GitHub Dependencia externa. Viola principio 7 (soberanía operativa).
GitLab CE Mayor consumo de recursos. Complejidad innecesaria para el tamaño del proyecto.
Gitea Carecía de CI/CD nativo en el momento de la decisión. Forgejo es un fork con Actions integrado.

Consecuencias

  • ✅ CI/CD nativo sin dependencias externas
  • ✅ Registro OCI para imágenes Docker autoalojado
  • ✅ Gobernanza de cambios vía PRs + issues
  • ✅ Fuente de verdad única para todo el código del sistema (principio 1)
  • ❌ Mantenimiento del runner local (casita-runner)
  • ❌ Una sola instancia — single point of failure mitigado por backups