Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Lucky Draw
  • WikiWiki
  • Wiki
  • Processo

Processo · Changes

Page history
Update Processo authored Mar 22, 2025 by Caroline Lewandowski's avatar Caroline Lewandowski
Show whitespace changes
Inline Side-by-side
Processo.md
View page @ 6c6f78cd
......@@ -22,6 +22,7 @@ Esta seção da documentação visa apresentar os processos de desenvolvimento u
## Sumário
- [GitFlow](#git-workflow)
- [Práticas de CI/CD](#praticas-ci-cd)
## GitFlow
......@@ -177,3 +178,24 @@ Uma vez que a revisão tenha sido concluída e todos os pontos de ajuste apontad
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.
O merge deve ser feito com a estratégia *squash-commits* e as branches devem ser excluídas após o merge para a branch de destino.
### 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
Clone repository
  • Arquitetura
  • Backend
  • Banco de dados
  • Codigo
  • Configuracao
  • Design & Mockups
  • Escopo e Cronograma
  • Frontend
  • Infraestrutura
  • Processo
  • Qualidade
  • Home