Skip to content

📌 Fluxo de Versionamento e Branches (Efetivado)

Este documento descreve um fluxo alternativo de versionamento e deploy, no qual as branches estão diretamente ligadas aos ambientes de homologação (HML) e produção (PRD). O processo é apoiado pelo Semantic Release, que garante automação de versões, changelogs e workflows de publicação.

🔹 Estrutura de Branches

  • main
  • Contém a versão estável em produção.
  • Exemplo: v2.3.0.
  • O fluxo de deploy a partir dessa branch ocorre exclusivamente para o ambiente de produção (PRD).
  • Sempre que houver promoção de código para main, o Semantic Release dispara um novo workflow exclusivo para aquela versão.

    • Isso habilita rollout/rollback e gera as Release Notes com base nas diferenças entre versões.
  • feature/*

  • Branch destinada à implementação de novas funcionalidades, melhorias ou correções.
  • Permite deploy direto no ambiente de homologação (HML) para validações.
  • Após estabilização e validações em HML, a feature pode ser promovida para a branch main.

  • local development

  • Ambiente local do desenvolvedor.
  • Permite condicionamento e execução de atividades sem impactar HML/PRD.
  • Publicações em HML podem ser feitas mesmo em estado draft (utilizando, por exemplo, skip ci).

🔹 Fluxo de Ambientes

  1. Local Development
  2. O desenvolvedor implementa e valida suas alterações localmente.
  3. Pode realizar deploy em HML para validar integrações e testes com outras áreas.

  4. Ambiente de HML

  5. Recebe deploys provenientes das branches feature/*.
  6. Permite testes, validações e homologação da solução.
  7. Somente após validação em HML é que o código pode seguir para main.

  8. Ambiente de PRD

  9. Recebe deploys somente da branch main.
  10. Representa o estado estável do sistema em produção.
  11. Permite rollout/rollback ágil com workflows gerados pelo Semantic Release.

🔹 Semantic Release

  • Automatiza:
  • Geração de versões (ex.: v2.3.0).
  • Criação de changelog.
  • Disparo de workflows exclusivos para cada release, permitindo rollout/rollback.
  • Geração de Release Notes baseadas nas diferenças entre versões.

🔹 Resumo Visual do Fluxo

Fluxo de Branches (Avançado)

🔹 Boas Práticas

  • Sempre criar novas funcionalidades a partir de uma branch feature/*.
  • Publicar em HML para validações antes de promover à main.
  • Garantir que testes e QA estejam completos antes de merge na main.
  • Acompanhar changelogs e Release Notes gerados pelo Semantic Release.
  • Em caso de falhas em PRD, utilizar o rollback automático via workflow gerado pelo Semantic Release.
  • Utilizar skip ci ou PRs em draft quando for necessário publicar algo em HML sem impactar pipelines.

✅ Checklist Rápida para o Time

  • [ ] Criar branch feature/nome-da-feature a partir de main.
  • [ ] Implementar alterações localmente em Local Development.
  • [ ] Deployar no ambiente de HML para validação.
  • [ ] Realizar testes funcionais, integração e QA em HML.
  • [ ] Promover a feature para a branch main após validação.
  • [ ] Deploy automático em PRD gerado a partir de main.
  • [ ] Confirmar changelog e Release Notes criadas pelo Semantic Release.
  • [ ] Em caso de problema em PRD, acionar o rollback automático via workflow.