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