[Infra] Implementar o CI/CD do projeto
Descrição
Implementar a pipeline de CI/CD do projeto para automatizar o processo de build, testes e, se possivel, deploy. O objetivo é garantir que todo novo Merge Request passe por validações automáticas e, caso implementado, que consigamos realizar o deploy de forma automática apenas rodando um job especifico da pipeline, podendo ser uma ação manual ou automatizada (ex: merge em uma branch chamada "deploy").
A pipeline deve possuir as seguintes fases:
- Dependências e build do projeto.
- Execução dos testes do projeto.
- Análise de qualidade (lint).
Além disso, pode-se adicionar:
- Deploy automizado utilizando de nossa infraestrutura AWS.
- Uso, caso necessário, do gitlab variables.
DoD
- A pipeline executa a cada MR aberto que não está em draft
- A pipeline falha caso algum teste não passe ou haja erro de build.
- O deploy, caso implementado, é executado apenas quando o pipeline é bem-sucedido.
- As credenciais e variáveis sensíveis estão armazenadas de forma segura.
- Todo o processo de CI/CD está documentado