ADR-0003 · Aprobación de producción vía workflow_dispatch manual¶
- Estado: reemplazado por ADR-0004
- Decisores: no registrado en el repositorio (reconstruido del historial de commits)
- Fecha de la decisión: 2026-06-18 (commits
e7f1578,e892da3)
Contexto y problema¶
Producción no puede desplegarse sola con cada push a main, pero la regla de protección
Require reviewers de los GitHub Environments solo está disponible en planes que la organización
no tiene (así lo consigna la
guía de CI/CD: "Plan Team/Pro no tiene Require
reviewers"). Hacía falta un punto de control humano igual.
Opciones consideradas¶
- Environment
productioncon reviewers obligatorios — no disponible en el plan contratado. workflow_dispatchmanual como único disparador del job de producción (elegida).- Desplegar a producción en cada push a
main— descartado por riesgo.
Decisión¶
El job deploy-prod se declara con if: github.event_name == 'workflow_dispatch' y un input
environment: production. Un push a main construye y publica la imagen pero no despliega;
alguien tiene que entrar a Actions y ejecutar el workflow a mano. El job conserva
environment: production, de modo que si en el futuro se habilitan reviewers, la protección
aplica sin tocar el workflow.
Consecuencias¶
Positivas¶
- Hay un humano decidiendo cuándo entra un cambio a producción, sin depender del plan de GitHub.
- La imagen ya está construida y probada en staging cuando se dispara el deploy: el paso manual no reconstruye nada.
Negativas / deuda asumida¶
- No queda registro de "quién aprobó qué" más allá del actor del
workflow_dispatch. - Es fácil creer que un push a
maindesplegó cuando no lo hizo. - El step que arma los tags solo contempla
refs/heads/stagingyrefs/heads/main: disparar el workflow desde otra rama produce una lista de tags vacía y el push de la imagen falla.