Histórico de revisão
Data | Versão | Alteração | Autor |
---|---|---|---|
16/03/2022 | 1.0 | Criado documento de pipeline | Lucas Lopes |
Pipelines
O objetivo de uma pipeline é automatizar o processo de entrega de software em produção de forma rápida, ao mesmo tempo garantindo sua estabilidade, qualidade e resiliência
Ambiente de desenvolvimento
No ambiente de desenvolvimento, há três pipelines diferentes.
A primeira, executa a aplicação pelo sonar para estimar as métricas de qualidade.
Já a segunda, depois de ter passado pela primeira pipeline, faz o deploy automaticamente na heroku atráves da branch devel
.
A terceira, ao criar uma tag, é gerado uma nova release e é enviada as métricas para o repositório de documentação
Ambiente de documentação
No ambiente de documentação, só existe uma pipeline. Ao fazer um push, é enviado ao github pages a nova versão da página.
Fluxo de desenvolvimento
Há 2 ramos (branchs) fixos:
main: ambiente de produção;
devel: ambiente de homologação.
As mudanças da devel que são fundidas (Pull Request merge) na main
não geram release ou geram uma release (major ou minor)
.
As mudanças de um ramo do tipo hotfix que são fundidas (Pull Request Merge) na main
geram uma release patch.
O desenvolvimento de novas funcionalidades deve derivar do ramo devel
, em seguidas fundidas na devel
e depois integrar todas as funcionalidades na devel
. Por fim, é fundida na main