Skip to content

Fluxo de deploy

Jhony Lucas edited this page Sep 19, 2024 · 1 revision

Fluxo de Merge no GitHub

Objetivo

Este documento descreve o fluxo de merge utilizado no projeto, detalhando como as branches dev, staging e prod são gerenciadas e como o processo de build é acionado.

Estrutura de Branches

  • dev: Branch principal de desenvolvimento, onde novas funcionalidades e correções são implementadas.
  • staging: Branch de homologação, onde as funcionalidades desenvolvidas em dev são testadas antes de serem enviadas para produção.
  • prod: Branch de produção, onde o código estável e testado é disponibilizado para o ambiente de produção.

Fluxo de Trabalho

  1. Criação de Pull Request para a Branch dev

    • O desenvolvimento de novas funcionalidades e correções deve ser feito em uma branch criada a partir da dev.
    • Após a conclusão do trabalho, deve-se criar um Pull Request (PR) para a branch dev.
    • O PR deve ser revisado e aprovado por outro membro da equipe antes de ser mergeado.
  2. Merge de dev para staging

    • Quando a branch dev tiver sido atualizada com novos commits, deve-se criar um PR da dev para a branch staging.
    • Este PR serve para homologação. Após a revisão e aprovação, o PR é mergeado na staging.
  3. Merge de staging para prod

    • Após a homologação bem-sucedida na staging, um PR deve ser criado da staging para a branch prod.
    • A branch prod é onde o código é considerado estável e pronto para ser lançado em produção.

Processos Automatizados

  • Build: O processo de build é acionado automaticamente em qualquer push para as branches dev, staging e prod.
  • Validação de Código: É recomendável configurar verificações automatizadas (como testes e linter) que devem ser executadas durante o processo de PR.

Deploy manual

O deploy manual não é suportado neste projeto. Portanto, é necessário seguir o fluxo de merge descrito anteriormente para que o deploy ocorra automaticamente. Caso haja alguma falha no deploy automático, é possível acionar um rebuild manual dos jobs através do GitHub Actions, conforme necessário.