Skip to content

GitFlow e Gestão de Ambientes ​

Para garantir a estabilidade das nossas aplicações de saúde, utilizamos um fluxo de trabalho baseado em GitFlow integrado com nossos ambientes de deploy.

Nossos Ambientes ​

Trabalhamos com três ambientes principais, cada um com um propósito e nível de isolamento específico:

1. Desenvolvimento (Dev) ​

  • Propósito: Validação técnica inicial e testes de novas funcionalidades (Features).
  • Origem: Branch develop.
  • Acesso: Livre para desenvolvedores e QAs.
  • Dados: Dados sintéticos ou mocks.

2. Homologação (Staging) ​

  • Propósito: Validação final de UX/UI e QA em um ambiente idêntico ao de produção.
  • Origem: Branch staging.
  • Características Técnicas:
    • Espelhamento: É uma cópia exata de Produção (mesmas credenciais e infraestrutura).
    • Sincronização: Os dados são espelhados de Prod para Staging a cada 20 dias.
    • Anonimização: Durante o espelhamento, os dados sensíveis dos usuários são anonimizados para garantir a segurança e conformidade com a LGPD, mantendo o volume e a estrutura real para testes de performance.

3. Produção (Prod) ​

  • Propósito: Ambiente real de atendimento ao cidadão brasileiro.
  • Origem: Branch master.
  • Restrições: Deploy controlado e monitorado.

🛠️ O Fluxo de Trabalho (GitFlow) ​

Ramos de Vida Longa ​

  • master: Reflete o código em produção.
  • staging: Reflete o código em homologação.
  • develop: Reflete o código em desenvolvimento.

Fluxo de Desenvolvimento ​

  1. Novas Features: Criamos branchs sempre a partir da master (ex: feature/NOME-DA-TASK). Nunca inicie a partir de develop ou staging para evitar trazer bugs ou funcionalidades incompletas.
  2. Pull Request (PR): Após concluir, abrimos PR para develop.
  3. Deploy em Dev: Ao fazer merge na develop, o deploy automático ocorre para o ambiente de Dev.
  4. Promovendo para Staging: Quando a funcionalidade é validada em Dev, fazemos um PR da develop para a staging.
  5. Validação Final: O QA testa no ambiente de Staging (com os dados reais anonimizados).
  6. Release (Prod): Validado em Staging, o código segue para a master via PR, disparando o deploy para **Produção **.

Correções (Bugfix e Hotfix) ​

  • Bugfix: Se encontrar um bug em develop ou staging, crie a branch de correção a partir da branch onde o problema está.
    • Exemplo (Dev): bugfix/fix-auth-error a partir da develop.
    • Exemplo (Staging): bugfix/fix-auth-error a partir da staging.
  • Hotfix: Para correções urgentes em Produção, a branch deve ser criada sempre a partir da master.
    • Exemplo: hotfix/fix-error-queue.

✅ O que fazer ​

  • Sempre crie branchs com nomes semânticos (feature/, bugfix/, hotfix/).
  • Garanta que o código foi testado em Staging antes de subir para Produção.
  • Mantenha seu branch local de develop sempre atualizado.

❌ O que não fazer ​

  • Fazer commits diretos nas branchs develop, staging ou master.
  • Tentar pular a etapa de Staging para "ganhar tempo" em funcionalidades complexas.
  • Usar dados reais de pacientes em ambiente de Dev.