Skip to content

[DevOps] CI

Cauana Dias edited this page Nov 22, 2024 · 5 revisions

Documentação de CI

Este documento explica a estratégia de pipelines de integração contínua (CI) configurada para o projeto tanto back-end quanto para o front-end. O CI é dividido por arquivos YAML específicos para cada etapa, permitindo controle e otimização de testes e builds de acordo com o propósito de cada etapa.


Descrição dos Pipelines para Cada Branch

ci-feat.yml

Executa nas branches feat/* (funcionalidades em desenvolvimento):

  • Compilação do projeto
  • Testes unitários

Objetivo: Validar o código de novas funcionalidades antes da integração na branch dev.


ci-feat-to-dev.yml

Executa quando há um merge da branch feat/* para dev:

  • Compilação do projeto
  • Testes unitários

Objetivo: Garantir que a funcionalidade desenvolvida na feat/* seja validada e integrada corretamente com a branch dev.


ci-dev-to-teste.yml

Executa quando há um merge da branch dev para teste:

  • Compilação do projeto
  • Testes unitários
  • Teste de integração subindo banco para testes

Objetivo: Garantir que a branch de integração (dev) esteja pronta para ser validada em ambiente de testes.


ci-teste-to-main.yml

Executa quando há um merge da branch teste para main:

  • Compilação final do projeto

Objetivo: Validar que o código esteja pronto para produção após passar pelos testes finais. Este pipeline realiza o deploy do código na produção.


Motivo para a Divisão dos Arquivos

A divisão do CI em arquivos específicos para cada branch permite que as etapas do pipeline sejam adaptadas ao estágio do desenvolvimento. Isso aumenta a eficiência e facilita a manutenção dos processos de CI, garantindo que apenas as verificações necessárias sejam realizadas em cada fase.

  • feat/*: Apenas testes unitários para validar novas funcionalidades.
  • dev: Testes unitários para garantir o funcionamento.
  • teste: Testes finais para garantir que o código está pronto para produção.
  • main: Pipeline de deploy final.

Essa estrutura modular do CI torna o processo de integração contínua mais organizado, eficiente e específico para cada fase do desenvolvimento.

Clone this wiki locally