-
Notifications
You must be signed in to change notification settings - Fork 1
Boas Práticas
Seguindo o modelo de três branches principais usadas aqui na BD - Main (Produção), Staging e Development (Dev) - o modelo de utilização de branches será baseado no Git Flow, mantendo essas três como fixas do repositório do backend. Considera-se uma boa prática pois usa-se a branch de Dev para testar novas funcionalidades e correções que forem necessárias. A branch de Staging permanece como a réplica de produção, onde também servirá para debbug de forma mais assertiva de possíveis erros que ocorrerem em produção. E temos a branch Main que é Produção, onde para alguma alteração subir para Prod, deve-se passar pelo fluxo: Dev -> Staging -> Prod.
- Dentro do seu repositório local entre na branch main:
git checkout main
- Atualize a branch main local com a origem:
git pull origin main
- Após estar atualizado, crie uma nova branch:
git checkout -b [tipo da branch]/nome-da-branch
O tipo da branch pode ser: Feat, Fix, Chore, Doc ou Test
O nome da sua branch deve seguir lower_case e com - para separação de palavras.
- Faça as alterações de código necessárias, adicione as alterações na sua branch com
git add
e depois utilize padrões de commit na mensagem dogit commit -m "mensagem-de-commit"
- Realize o Push para sua branch no github:
git push -u origin [tipo da branch]/nome-da-branch
- Abra o PR da sua branch apontando para o ambiente de Dev e então realize as validações e testes necessários.
- Abra um novo PR da sua branch apontando para Staging e então realize as validações e testes novamente (Agora estará sendo testado já simulando o ambiente de Produção, visto que Staging é uma réplica da Main)
- Abra um novo PR da sua branch apontando para Main. Aqui será necessário Code Review e também passar na pipeline de validações do PR (Python Lint, Pull Request Lint e etc.) e então poderá ser mergado para Main (Prod).
NÃO UTILIZE O UPDATE BRANCH dentro do seu PR nos ambientes de staging e dev!! Isso irá puxar todas as alterações do ambiente para seu PR e sujar sua branch, o que não é o correto. Caso você esteja comparando sua branch com a main pode utilizar o UPDATE BRANCH, assim teremos a certeza de que se houver conflito de código, será resolvido antes do merge com a main. Lembrando sempre de testar novamente caso o conflito de código ocorra (testar em staging novamente)!
No nosso contexto se refere ao uso das ferramentas de pre-commit e github actions para garantir que o código mergeado tenha sempre o mesmo padrão, seja funcional ou estético. Para esse fim se recomenda instalar o projeto via poetry incluindo as dependências de desenvolvimento, e em seguida instalar os pre-commit hooks via código abaixo:
poetry install --with=dev && pre-commit install
Uma vez instalados esses hooks irão executar sempre que um commit for realizado. Atualmente alguns repositórios contam com fluxos que executam testes e checam a formatação de arquivos python, sql e yaml. É recomendado que um pull request seja mergeado apenas após todas as validações tenham finalizado com sucesso.