Git - Melhores práticas na utilização de branches

Olá pessoal!

Supondo que existam duas branches:

1) master - versão de produção
2) release2018 - branch criado a partir da master, possui novas funcionalidades que serão disponibilizadas em 2018

Toda a homologação foi realizada utilizando o branch “release2018”, quando chegar o momento de subir as alterações para produção, qual é a melhor prática? Realizar um merge para a “master” e implantar este branch ou subir o “release2018”, pois o mesmo já está homologado, e recriar a “master” baseado nele?

Olá!

A primeira opção é a prática mais adotada: o merge para a master. A master tem tudo o que está em produção.

Também é uma boa prática fazer uma tag no momento em que você integrou suas mudanças na master.

Oi Alexandre,

Obrigada pelo retorno! Então o ideal seria utilizar os passos abaixo?

1) Realizar o merge para a master
2) Criar a tag da integração da release
3) Testar novamente todas as funcionalidades
4) Subir as alterações em produção

Acho que são esses passos mesmo!

Os problemas que vejo nesta abordagem são os seguintes:

1) Ter tempo para retestar as funcionalidades quando a integração ocorrer no branch “master”, onde trabalho, por exemplo, os testes ainda são manuais e às vezes somos informados da implantação apenas dias antes, então realizar o merge e garantir que tudo estará funcionando em pouco tempo será complicado.

2) O merge foi realizado na “master” e a implantação está prevista para a próxima semana, porém surgiu um erro grave em produção e não poderemos esperar até a implantação da release. Neste caso entendo que seria necessário realizar um revert das novas funcionalidades, subir a correção e depois fazer o merge novamente, se estivéssemos usando o branch “release2018” só teríamos que fazer o merge desta correção antes de subir o branch em produção.

Você pode fazer tags na master para voltar de maneira mais rápida, sem reverter commits.

Outra coisa é, dado um novo erro, o ideal seria corrigir o erro pontual e não voltar tudo para a versão anterior. No caso de falhas, bola pra frente.

Mas acho que você mencionou a grande questão: os testes manuais. Seria bom investir em automação de testes em vários níveis (de unidade, de integração e de sistema) pra validar mais rapidamente a nova versão.

Além disso, o esforço entre a validação homologação e a implantação em produção deve acontecer por diferenças entre os ambientes. O uso de ferramentas open-source e de containers permite que os ambientes de desenvolvimento, testes, homologação e produção sejam extremamente semelhantes, detectando falhas o mais cedo possível.

Legal Alexandre, muito obrigada pela ajuda, como você mencionou acho que a grande questão são os testes manuais.

1 curtida