ADR-027 — CI/CD

Architecture decision record — status: Accepted.

Source: docs/adr/ADR-027-ci-cd.md

ADR-027: CI/CD

Estado

Accepted — 2026-08-23
Amendment — 2026-08-28: CI en GitHub Actions es solo manual (workflow_dispatch), paridad IVPrior — no corre en push ni pull_request.

Contexto

GitHub Flow (ADR-017). Agentes abren PRs. Hace falta el mismo gate en local y en CI.

Decisión

  1. GitHub Actions como CI.
  2. PR obligatorio hacia master. El workflow CI se dispara manualmente en Actions → CI → Run workflow (no en cada push/PR).
  3. V1 CI: lint, typecheck, unit/integration vía make check (mismo contrato que local).
  4. No deploy automático a producción en el primer scaffold. Deploy = paso explícito (ADR-030).
  5. Ambientes: local · staging (cuando exista host) · production.
  6. Secrets solo en GitHub Environments / host (ADR-015).
  7. Pre-push Husky (scripts/pre-push-gate.sh) sigue siendo el gate local antes de git push; CI remoto es opt-in manual.

Alternativas

GitLab CI / Circle: se descartan (el repo ya es GitHub).

Consecuencias

  • .github/workflows/ci.yml llama make check, no un script paralelo.
  • Merge sin CI verde en GitHub es posible; correr CI manualmente antes de merge cuando el cambio toca producto.