c0ca88c028
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
21 lines
1.2 KiB
Markdown
21 lines
1.2 KiB
Markdown
# Deploy — Modelo (Build Once → Promote → Deploy)
|
|
|
|
> Situação: **como o deploy funciona, em conceito.** Estado real verificado em 17/jun/2026.
|
|
|
|
**Push** na `main` builda **uma vez** e publica a imagem por **commit**; a **tag `vX.Y.Z`** **re-tagueia** essa mesma imagem (sem rebuild) e deploya. **Produção nunca builda — só executa imagens prontas.**
|
|
|
|
```
|
|
PUSH main (commit C) TAG vX.Y.Z (no commit C)
|
|
│ │
|
|
▼ ▼
|
|
CI: build (1x) CI: promote (SEM build)
|
|
publica :C + :latest re-tag :C → :vX.Y.Z (MESMO digest) + deploy
|
|
▼ ▼
|
|
registry (Gitea) produção: pull :vX.Y.Z + up --no-build
|
|
```
|
|
|
|
Garantia central: **a imagem em produção é byte-idêntica à que foi buildada e testada**. A tag é só um rótulo de release sobre um artefato imutável.
|
|
|
|
- **Por que importa:** acaba a recompilação na promoção (que podia gerar imagem diferente da testada) e a colisão de tags. Implementação de referência: scoreodonto.com (`v1.0.18`).
|
|
- Situações relacionadas: `subir-release.md`, `rollback.md`, `versionamento.md`; infra em `../infra/`.
|