Conforme o projeto ficar mais maduro, também compensa dividir as etapas de CI e de CD.
A etapa de CI fica compreendendo o processo de contribuição de código, e costuma ir até a etpaa de testagem. A esteira de CI pode ser acionada a cada push, em qualquer branch, pra dar um feedback rápido pro desenvolvedor sobre o status do código.
Já a etapa de CD fica só com a etapa de build, testes finais, e deploy, e só precisa acontecer depois que uma funcionalidade nova estiver testada e funcionando certinho. A esteira de CD costuma rodar só quando uma nova versão do código chega na branch main.
Essa prática acaba mudando um pouco o fluxo que a gente usa o git. A gente cria uma branch 'feature' nova na hora de começar uma funcionalidade, e quando termina a gente faz um pull request pra branch principal (ou pra alguma branch intermediária, por exemplo a branch de staging).
A interface de Pull Request do github é muito boa pra olhar as diferenças e fazer revisão do código!
Conforme o projeto ficar mais maduro, também compensa dividir as etapas de CI e de CD.
A etapa de CI fica compreendendo o processo de contribuição de código, e costuma ir até a etpaa de testagem. A esteira de CI pode ser acionada a cada push, em qualquer branch, pra dar um feedback rápido pro desenvolvedor sobre o status do código.
Já a etapa de CD fica só com a etapa de build, testes finais, e deploy, e só precisa acontecer depois que uma funcionalidade nova estiver testada e funcionando certinho. A esteira de CD costuma rodar só quando uma nova versão do código chega na branch main.
Pra isso tudo funcionar, é importante usar o 'Trunk Based Developent' e branches pra cada feature: https://trunkbaseddevelopment.com/
Essa prática acaba mudando um pouco o fluxo que a gente usa o git. A gente cria uma branch 'feature' nova na hora de começar uma funcionalidade, e quando termina a gente faz um pull request pra branch principal (ou pra alguma branch intermediária, por exemplo a branch de staging).
A interface de Pull Request do github é muito boa pra olhar as diferenças e fazer revisão do código!