mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-12 22:13:05 +00:00
Change DEPLOY_COOLDOWN_MS constant, update ci.yml deferral log, and adjust unit test pins. Closes #259. Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
2.8 KiB
2.8 KiB
Impl: CI — cooldown de deploy de produção: 30 → 15 min
Status: aprovado Atualizado em: 2026-08-02 Issue: #259 Intenção: docs/plans/ci-deploy-cooldown-15min.md Appetite restante: herdado (~0,25 dia) — só constante + pins
Leitura da intenção
- Outcome: intervalo mínimo entre deploys READY de produção passa de 30 para 15 minutos; deferral + requeue inalterados; logs/pins honestos.
- O que NÃO negociar: não remover cooldown; não mudar fonte da idade (Vercel READY production); não tocar
ci-pr.yml/ required checks / preview Git. - O que reavaliar: hipótese do plano de intenção confirma — dono é
DEPLOY_COOLDOWN_MSemscripts/lib/vercel-deploy-cooldown.mjs; CLI já deriva minutos do constante.
Abordagem recomendada
flowchart LR
A[ci.yml deploy job] --> B[vercel-deploy-cooldown.mjs]
B --> C[evaluateDeployCooldown]
C --> D{DEPLOY_COOLDOWN_MS}
D -->|"< 15 min"| E[defer + requeue]
D -->|">= 15 min"| F[vercel deploy --prod]
Opções consideradas:
- A) Alterar só
DEPLOY_COOLDOWN_MS+ pins — mínimo diff, CLI auto-ajusta log. - B) Parametrizar via env
DEPLOY_COOLDOWN_MINUTESno workflow — flexível, mas YAGNI e duplica fonte da verdade. - C) Documentar 15 min só no workflow, constante 30 no script — mente nos testes.
Recomendação: A — uma constante nomeada já é o contrato OPS11; workflow só precisa do echo humano.
Rejeitadas: B (over-engineering); C (pins mentirosos).
Componentes / mudanças
DEPLOY_COOLDOWN_MS(scripts/lib/vercel-deploy-cooldown.mjs):30 * 60 * 1000→15 * 60 * 1000..github/workflows/ci.yml: echo de deferral "30 minutes" → "15 minutes".tests/unit/vercelDeployCooldown.unit.spec.ts: pin da constante + descrições; ajustarwaitSecondsno caso 10 min atrás (20 min → 5 min residual).- Migration: sem migration.
- Access / Consent: N/A.
- UI: N/A (Impeccable A).
Dados → forma
N/A — política de infra.
Fases verificáveis
- Constante + workflow log — alterar
DEPLOY_COOLDOWN_MSe echo emci.yml. - Pins unitários — atualizar
vercelDeployCooldown.unit.spec.ts. - Gates —
pnpm gate:fast; entrega compnpm push.
Rabbit holes / Não escopo (engenharia)
- Reescrever
docs/plans/ci-deploy-cooldown-vercel.md(histórico OPS11). - Parametrizar cooldown por env sem pedido de produto.
- Batch de merges / teto diário de deploys.
Riscos e mitigação
- 429
api-upload-freevolta: observar pós-merge; reabrir com evidência (assumido na intenção). - Echo hardcoded no workflow: aceito — único lugar; constante é fonte da verdade para lógica.
Aceite de engenharia
- Aceite de produto da intenção ainda coberto
- Invariantes AGENTS/engineering-standards
- Testes de domínio previstos (unit pins existentes)