Temos alguém (vamos chamá-lo de Ted) que é responsável por testar novos recursos e correções de bugs.
Estamos usando o Git e o GitHub . master
deve ser / é sempre implantável e development
é onde confirmamos / mesclamos novos recursos ou correções de bugs, mas somente depois que eles foram testados por Ted.
O projeto está em PHP.
Eu gostaria que o processo de teste fosse assim:
- Um desenvolvedor quer trabalhar em um novo recurso (digamos que o recurso / bug # 123 como Ted documentado no issue tracker), então ele puxa
origin/development
paradevelopment
em seu repositório local e cria um novo ramo (digamosissue-123
) de lá. - Uma vez satisfeito com seu trabalho, ele compromete e empurra seu novo ramo para
origin
. - Ted se conecta
test.ourproject.com/choose-branch
e vê uma lista dos ramosorigin
e escolhe ligarissue-123
(deve ser possível através da página da web). Em seguidatest.ourproject.com
, ele testa o aplicativo da Web (ele é realmente impiedoso) e depois de algumas idas e vindas com o desenvolvedor, ele está feliz com o recurso. - Ted diz o desenvolvedor que ele pode mesclar
issue-123
emdevelopment
onorigin
. - Enxague e repita.
Para a terceira etapa, eu poderia hackear algo que faz o trabalho (mostrando e alternando ramificações de uma página específica), mas acho que o que descrevi é um padrão muito comum.
Portanto, minha pergunta é: esse é um fluxo de trabalho bom / sustentável / sustentável para ramificação? Você pode fazer backup de sua resposta citando alguns exemplos de outros projetos após esse fluxo de trabalho?
issue-123
se refere ao bug / recurso # 123, pois Ted documenta cada bug / novo recurso em nosso rastreador de problemas.