... | @@ -9,6 +9,7 @@ Esta página descreve os processos utilizados pelo time ao longo do projeto. |
... | @@ -9,6 +9,7 @@ Esta página descreve os processos utilizados pelo time ao longo do projeto. |
|
|
|
|
|
- [Desenvolvimento](#desenvolvimento)
|
|
- [Desenvolvimento](#desenvolvimento)
|
|
- [Fluxo de trabalho no Git](#fluxo-de-trabalho-no-git)
|
|
- [Fluxo de trabalho no Git](#fluxo-de-trabalho-no-git)
|
|
|
|
- [Práticas de CI/CD](#práticas-de-cicd)
|
|
|
|
|
|
## Desenvolvimento
|
|
## Desenvolvimento
|
|
|
|
|
... | @@ -100,3 +101,24 @@ As revisões serão feitas **por apenas um AGES 3 e AGES 4**, assim devendo ele |
... | @@ -100,3 +101,24 @@ As revisões serão feitas **por apenas um AGES 3 e AGES 4**, assim devendo ele |
|
Uma vez que a revisão tenha sido concluída e todos os pontos de ajuste apontados tenham sido commitador na Source Branch, realize o merge e envie as alterações à branch develop.
|
|
Uma vez que a revisão tenha sido concluída e todos os pontos de ajuste apontados tenham sido commitador na Source Branch, realize o merge e envie as alterações à branch develop.
|
|
|
|
|
|
No final de cada Sprint, para gerar uma nova versão do projeto a ser apresentada para o cliente, deve ser aberto um Merge Request para realizar o merge da branch develop na branch master, atualizando o código de produção com os desenvolvimentos realizados durante a sprint.
|
|
No final de cada Sprint, para gerar uma nova versão do projeto a ser apresentada para o cliente, deve ser aberto um Merge Request para realizar o merge da branch develop na branch master, atualizando o código de produção com os desenvolvimentos realizados durante a sprint.
|
|
|
|
|
|
|
|
### Práticas de CI/CD
|
|
|
|
|
|
|
|
Para automatizar processos e otimizar o ciclo de desenvolvimento do software do projeto, criou-se uma pipeline de integração contínua (CI) e entrega contínua (CD) no projeto de Backend a partir da ferramenta GitLab CI/CD.
|
|
|
|
|
|
|
|
A pipeline criada pode ser vista [aqui](https://tools.ages.pucrs.br/sem-barreiras/sembarreiras-backend/-/blob/main/.gitlab-ci.yml) e contém 4 estágios que serão descritos abaixo:
|
|
|
|
|
|
|
|
<img src="./resources/images/gitlab-pipeline-cicd.png" width="450">
|
|
|
|
|
|
|
|
1. **Build**: executado para qualquer commit realizado em qualquer uma das branches do projeto, realiza a compilação e o build do projeto de Backend.
|
|
|
|
2. **Test**: envolve a execução de testes unitários do projeto de Backend, e a análise estática do código com a ferramenta Checkstyle para verificar se os padrões estão sendo seguidos.
|
|
|
|
- A execução de testes unitários é feita para qualquer commit realizado em qualquer uma das branches do projeto.
|
|
|
|
- A análise de código é executada apenas na ocorrência de: um Merge Request, um commit na branch develop, ou um commit na branch main.
|
|
|
|
3. **Package**: envolve o build da imagem Docker do projeto de Backend e o push desta imagem para o repositório ECR da AWS.
|
|
|
|
- Ao realizar um commit na branch develop, realiza-se o push de uma imagem com a tag "develop" para o repositório.
|
|
|
|
- Ao se criar uma Tag a partir da branch main, realiza-se o push de uma imagem, identificada pelo nome da tag, para o repositório.
|
|
|
|
4. **Deploy**: envolve a conexão SSH com a instância EC2 da AWS para realizar o deploy da nova versão do container do projeto de Backend.
|
|
|
|
- Ao realizar um commit na branch develop, realiza-se o deploy da imagem "develop" gerada, para o ambiente de staging.
|
|
|
|
- Ao se criar uma Tag a partir da branch main, realiza-se o deploy da imagem identificada pelo nome da tag, para o ambiente de produção.
|
|
|
|
|
|
|
|
Os dois primeiros estágios estão relacionados ao processo de integração contínua, ou seja, de integrar novas mudanças no código do repositório de Backend. Por outro lado, os dois últimos estágios estão relacionados à entrega contínua, no sentido que automatizam a liberação do código gerado, incluindo a sua implantação no ambiente produtivo. |
|
|
|
\ No newline at end of file |