Skip to content

Fundamentos de CI/CD

CI/CD é a combinação de práticas de automação de desenvolvimento que permitem que as equipes de software entreguem mudanças de código com mais frequência e confiabilidade.


1. CI (Continuous Integration - Integração Contínua)

A Integração Contínua é a prática de automatizar a integração de mudanças de código de vários contribuidores em um único projeto de software.

  • Build Automatizado: Toda vez que um código é enviado, o sistema tenta compilar a aplicação.
  • Testes Automatizados: Suite de testes (Unitários, Integração) que rodam para garantir que o novo código não quebrou funcionalidades existentes.
  • Análise de Código (Linting): Verificação automática de padrões de estilo e segurança (Horusec).

2. CD (Continuous Delivery/Deployment)

O CD expande a integração contínua ao implantar todas as alterações de código em um ambiente de teste ou de produção após o estágio de build.

Continuous Delivery (Entrega Contínua)

As alterações são testadas e preparadas automaticamente para produção, mas o deploy final exige uma aprovação humana.

Continuous Deployment (Implantação Contínua)

Toda alteração que passa em todas as etapas do pipeline de produção é lançada automaticamente para os usuários finais.


3. Benefícios

  1. Redução de Risco: Bugs são encontrados mais cedo no ciclo de desenvolvimento.
  2. Velocidade: O tempo entre "tive uma ideia" e "o usuário está usando" é drasticamente reduzido.
  3. Qualidade: Garante que o código em produção sempre passou pelos critérios mínimos de qualidade definidos pelo time.

4. No nosso projeto

Utilizamos pipelines automatizados (Cloud Build / Github Actions) que realizam as seguintes etapas:

  1. Instalação de dependências.
  2. Execução de Linters e Prettier.
  3. Execução de testes automatizados.
  4. Análise de segurança com Horusec.
  5. Geração de build (Vite/Webpack).
  6. Deploy automático nos ambientes de Dev e Staging.

Como fazer vs Como não fazer

✅ Como fazer

  • Mantenha Pull Requests pequenos para facilitar a integração e o review.
  • Corrija falhas no pipeline imediatamente. Um pipeline quebrado impede o time todo de avançar.
  • Escreva testes significativos que realmente protejam o sistema contra regressões.

❌ Como não fazer

  • Pular etapas do pipeline localmente (--no-verify no git commit).
  • Ignorar avisos de segurança ou de lint.
  • Fazer deploy manual em produção sem passar pelo pipeline oficial.