diff --git a/docs/assets/arquitetura.png b/docs/assets/arquitetura.png new file mode 100644 index 00000000..6e5859d6 Binary files /dev/null and b/docs/assets/arquitetura.png differ diff --git a/docs/assets/checks-tests-pr.png b/docs/assets/checks-tests-pr.png new file mode 100644 index 00000000..00ca2799 Binary files /dev/null and b/docs/assets/checks-tests-pr.png differ diff --git a/docs/assets/deploy-dev-done.png b/docs/assets/deploy-dev-done.png new file mode 100644 index 00000000..a956fe79 Binary files /dev/null and b/docs/assets/deploy-dev-done.png differ diff --git a/docs/assets/gh-actions-history.png b/docs/assets/gh-actions-history.png new file mode 100644 index 00000000..cc87bdef Binary files /dev/null and b/docs/assets/gh-actions-history.png differ diff --git a/docs/assets/pr-comment-deploy.png b/docs/assets/pr-comment-deploy.png new file mode 100644 index 00000000..6c84b092 Binary files /dev/null and b/docs/assets/pr-comment-deploy.png differ diff --git a/docs/assets/quality-gate-sonarqube-1.png b/docs/assets/quality-gate-sonarqube-1.png new file mode 100644 index 00000000..3659a02f Binary files /dev/null and b/docs/assets/quality-gate-sonarqube-1.png differ diff --git a/docs/assets/status-auth-service-after-deploy.png b/docs/assets/status-auth-service-after-deploy.png new file mode 100644 index 00000000..4027dc69 Binary files /dev/null and b/docs/assets/status-auth-service-after-deploy.png differ diff --git a/docs/assets/trigger-deploy-dev.png b/docs/assets/trigger-deploy-dev.png new file mode 100644 index 00000000..3d756465 Binary files /dev/null and b/docs/assets/trigger-deploy-dev.png differ diff --git a/docs/fase_4/continuous_integration.md b/docs/fase_4/continuous_integration.md new file mode 100644 index 00000000..58cd03a5 --- /dev/null +++ b/docs/fase_4/continuous_integration.md @@ -0,0 +1,66 @@ +# Continuous integration and continuous delivery + +--- + +Nesta quarta entrega, apresentamos os processos para a implementação do Tech Challenge, cujo objetivo é desenvolver uma plataforma de vendas para uma lanchonete de bairro em plena expansão. Este documento detalha os testes unitários, cobertura de código e o fluxo de deploy baseado na branch principal. + +A implementação foi realizada utilizando o mesmo ambiente configurado na [fase 3](https://software-architecture-fiap.github.io/tech-challenge/fase_3/eks_infra_cicd/), garantindo consistência e continuidade. + +Para mais detalhes, consulte os manifestos do Terraform disponíveis no repositório [infra-kitchen](https://github.com/software-architecture-fiap/infra-kitchen). + +--- + +## :material-wrench-outline: Checks de PR + +Cada repositório de serviço possui um pipeline automatizado para verificar a qualidade do código e a execução de testes unitários sempre que há mudanças no código. + +- Análise de código com Flake8: Valida a conformidade do código com as melhores práticas do Python. +- Execução de testes unitários: + - Configuração do ambiente com Python 3.10 e Poetry. + - Instalação de dependências via Poetry. + +#### Execução de testes com pytest e cobertura de código. + + + +## :material-wrench-outline: Cobertura de código + +O pipeline de cobertura de código é acionado via push na branch principal e em pull requests, garantindo que a cobertura mínima seja respeitada. Execução dos testes com cobertura inclui: + +- O pytest é executado com pytest-cov. +- O relatório de cobertura é gerado no formato XML. + +Caso a cobertura fique abaixo de 75%, o pipeline falha, upload do relatório de cobertura como artefato no GitHub Actions. + + + +## :material-wrench-outline: Pipeline de Deploy + +O deploy é acionado via comentário no PR (/deploy). O GitHub Actions executa as seguintes etapas: + +- Build da imagem Docker com a tag baseada no commit SHA. +- Push da imagem para o Amazon ECR. +- Atualização do Kustomize para utilizar a nova imagem. +- Aplicar as configurações no cluster Kubernetes. + +No ambiente de desenvolvimento o eploy acionado com `/deploy` em um PR. + + + + + + + + + + + +Mais detalhe da execução do pipeline [clique aqui](https://github.com/software-architecture-fiap/tech-challenge/actions/runs/13402806439/job/37437040963?pr=84) + + +No Ambiente de Produção o versionamento é baseado em semver e nas seguintes regras de nome de branch: + +- bugfix/ → Patch version +- feature/ → Minor version +- release/ → Major version +- doc/ ou misc/ → Apenas incrementação de build diff --git a/docs/fase_4/movies.md b/docs/fase_4/movies.md index dc8fe614..92cae3fb 100644 --- a/docs/fase_4/movies.md +++ b/docs/fase_4/movies.md @@ -6,4 +6,8 @@