ADR-0018: Suporte ao Ambiente de Homologação/Staging no Pipeline de CI/CD | Wiki
ADR-0018: Suporte ao Ambiente de Homologação/Staging no Pipeline de CI/CD
Este documento especifica a decisão de arquitetura para o suporte a ambiente de Homologação/Staging (Preview Deployments) no pipeline de CI/CD via GitHub Actions e Cloudflare Pages, aderindo ao princípio DRY (Don't Repeat Yourself).
1. Contexto e Motivação
Com a consolidação do gerador estático gbr_ssg, a equipe de engenharia e produto necessita de um ambiente de Staging/Homologação para validar novas páginas e alterações de layout antes da promoção final para o ambiente de Produção.
Em vez de criar arquivos de workflow duplicados (ex: deploy-staging.yml), utilizaremos o suporte nativo do Cloudflare Pages a *Preview Deployments*, estendendo o workflow existente .github/workflows/gbr_ssg_deploy.yml.
2. Decisão Arquitetural
-
*Mapeamento de Ambientes por Branch / Evento:* - *Produção:* Gatilho de
pushna branchmain$\rightarrow$ O Wrangler publica a compilação no ambiente de Produção (gleam-br-site.pages.deve Custom Domains). - *Homologação / Staging:* Gatilho depushna branchhomologou abertura/atualização depull_requestapontando paramain$\rightarrow$ O Wrangler gera um *Preview Deployment* isolado com URL única no Cloudflare Pages. -
*Gatilhos Atualizados:*
yaml on: push: branches: - main - homolog paths: - 'apps/gbr_ssg/**' - 'packages/gbr_ssg_core/**' - '.github/workflows/gbr_ssg_deploy.yml' pull_request: branches: - main paths: - 'apps/gbr_ssg/**' - 'packages/gbr_ssg_core/**' - '.github/workflows/gbr_ssg_deploy.yml' -
*Reutilização Única de Job:* O job de Continuous Delivery (
cd) reutiliza o comandocloudflare/wrangler-action@v4, que detecta automaticamente o contexto da branch/PR para promover a Produção ou gerar o Preview no Cloudflare Pages.
3. Requisitos EARS
*Requisitos Ubíquos (Ubiquitous Requirements)*
- *UBQ-01 (Suporte DRY a Homologação):* O workflow DEVE escutar eventos de push nas branches main e homolog, bem como eventos de pull_request para main, compartilhando a mesma definição de pipeline.
- *UBQ-02 (Preview Deployments Automáticos):* Qualquer execução iniciada pela branch homolog ou por um pull_request DEVE gerar um ambiente de Preview isolado no Cloudflare Pages sem afetar os domínios de produção.