Pular para conteúdo

0027 — Adota o CI 100% GitHub Actions e o deploy pelo control-plane

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-09-11 · Decidido em: 2026-08-31

Contexto

Este RD não decide nada novo. O deploy orquestrado pelo central-backend, disparado pelo CI por API M2M, é norma da casa — ADR central 0026. O CI/CD num pipeline.yml único no GitHub Actions também — ADR central 0027. Os dois chegaram aqui no mesmo dia. O que faltava era o rastro local.

O número desta decisão local coincide por acaso com o do ADR central 0027.

Decisão

Em 2026-08-31, dois passos:

  1. Deploy pelo control-plane (commit 8ef6e39): o CI passou a pedir o deploy ao central-backend, autenticado por CENTRAL_DEPLOY_TOKEN (secret do repo no GitHub), no lugar da ponte SSH forced-command, cuja allow-list de uuid ficava órfã a cada cutover blue-green.
  2. Pipeline único (commit 4f44bb8, mesmo dia): o .github/workflows/pipeline.yml, na variante jar (app.json build.targets: [jar]), funde gate, docs, build e deploy, e o Forgejo deixa de rodar CI deste repo.

O deploy ancora na imagem fonte.xadm.biz/xadm/integrador-server. O slug da imagem difere do app_id (integrador), como o ADR central 0024 permite, e o control-plane resolve pela imagem. O endereço do control-plane é o domínio estável central-backend.xadm.biz, sem flavor de build (constituição §9).

Consequências

  • Um pedido, seis recursos. As instâncias por cliente compartilham a imagem. O central separa os recursos Coolify pela instância derivada do FQDN e deploya todas as instâncias num pedido só.
  • O pedido de deploy é assíncrono: o central só enfileira. Quem confirma a entrega nas seis bases é o smoke de produção (decisão local 0022).
  • O pipeline.yml é template rastreado da casa: muda por re-derivação (/xadm-docs), não por edição solta.
  • Este RD é ponteiro: divergência de mérito sobre o control-plane ou o modelo de CI se resolve nos ADRs centrais 0026 e 0027, não aqui.