DevOps ‐ Continuous Integration - QuantumBitBR/API_5SEM GitHub Wiki
1. Definição e objetivo do CI
Entrega Contínua (Continuous Integration - CI) é uma prática de desenvolvimento de software que visa identificar e corrigir erros de forma rápida e contínua. Ela permite que problemas sejam detectados nas fases iniciais do desenvolvimento, reduzindo o tempo e o custo de correção.
Antes da automação do processo, algumas rotinas foram definidas em conjunto com o time, como:
- Manter a branch
main estável
; - Permitir merge de
pull requests apenas após revisão
de outro membro do time; - Realizar
pulls diários
para minimizar divergências entre branches remotas e locais.
2. Construção das pipelines
Neste projeto, utilizamos o GitHub Actions como ferramenta de integração contínua. Para a configuração da automatização do CI foram criados arquivos YAML dentro do diretório Workflows
na pasta .github
. Neste arquivo foram definidos sete pipelines principais, cada um com um propósito específico:
2.1 Distribuição dos Jobs
Definição de cada tipo de job implementado.
- Unidade – Executa os testes unitários.
- Integração – Executa os testes de integração.
- Deploy – Automatiza o envio do código para o ambiente de produção.
- Build – Responsável por compilar o código.
2.2. Regras dos workflows
Os workflows foram configurados para seguir as seguintes regras:
-
Os jobs de testes (unitários e de integração) são executados em:
-
Push para qualquer branch;
-
Pull Requests direcionados para as branches main e sprint-atual.
-
-
O job de Build é executado em:
- Push e Pull Request para todas as branches.
-
O job de Deploy é executado apenas em:
- Pull Requests direcionados para a branch main, garantindo que todos os testes tenham sido aprovados antes da publicação.
3. Contribuições
Para a manutenção e evolução dos Workflows de CI/CD, as seguintes diretrizes devem ser seguidas por todos os membros do time:
3.1. Boas práticas ao contribuir com os Workflows
- Sempre crie um Pull Request para alterações nos Workflows, e solicite revisão de pelo menos um membro do time com conhecimento em DevOps/CI.
- Use branches de teste para validar alterações nos pipelines antes de propor o merge para main ou sprint atual.
3.2 Restrições e validações obrigatórias
- Alterações devem ser aprovadas pelo responsável pelo CI
- Use nomes claros e descritivos para jobs e steps
3.3. Checklist antes do merge
-
Verifique se os workflows foram executados com sucesso no próprio PR.
-
Garanta que não há passos desnecessários ou duplicados.
-
Peça revisão de outro membro da equipe.
-
Atualize a documentação se novos workflows ou jobs foram criados.