Gleam.br Wiki

ADR-0018: Suporte ao Ambiente de Homologação/Staging no Pipeline de CI/CD | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

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

  1. *Mapeamento de Ambientes por Branch / Evento:* - *Produção:* Gatilho de push na branch main $\rightarrow$ O Wrangler publica a compilação no ambiente de Produção (gleam-br-site.pages.dev e Custom Domains). - *Homologação / Staging:* Gatilho de push na branch homolog ou abertura/atualização de pull_request apontando para main $\rightarrow$ O Wrangler gera um *Preview Deployment* isolado com URL única no Cloudflare Pages.

  2. *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'

  3. *Reutilização Única de Job:* O job de Continuous Delivery (cd) reutiliza o comando cloudflare/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.