Pular para o conteúdo
SDETRole
SDETRole

Glossário · CI/CD e DevOps

Integração contínua (CI)

Em inglês: Continuous integration

Também chamado de: CI, integração contínua, pipeline de CI, pipelines de CI

Definição

A prática de integrar pequenas mudanças a uma branch compartilhada com frequência, com build e testes automáticos a cada push para que as quebras apareçam em minutos.

Integração contínua (CI, do inglês continuous integration) significa que os desenvolvedores fazem merge de pequenas mudanças na branch principal com frequência, e um servidor faz o build do código e executa os testes automatizados a cada push ou pull request. O objetivo é feedback rápido: se uma mudança quebra algo, o autor descobre enquanto a mudança ainda está fresca, e não dias depois durante um merge gigante.

Exemplo (GitHub Actions)

Um pipeline mínimo que executa a suíte de testes em todo pull request e em pushes para a main:

name: CI
on:
  pull_request:
  push:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: npm
      - run: npm ci
      - run: npm test

Se o npm test terminar com código diferente de zero, o job falha e o pull request mostra um check vermelho. Junto com uma proteção de branch que exige esse check, código quebrado não consegue entrar no merge.

O que é responsabilidade do tester na CI

  • Quais testes rodam onde. Testes unitários e de API rápidos em todo pull request; suítes end-to-end mais lentas no merge ou em horário agendado. Um pipeline de pull request que leva 40 minutos deixa de ser usado.
  • Qualidade do sinal. Um teste flaky em um job bloqueante ensina as pessoas a clicar em “re-run”. Coloque os testes instáveis em quarentena para que um build vermelho sempre signifique alguma coisa.
  • Artefatos. Publique relatórios, traces e screenshots das execuções com falha para que ninguém precise reproduzir uma falha localmente só para vê-la.
  • Paralelismo. Dividir uma suíte longa em shards em várias máquinas mantém o tempo de feedback estável à medida que a suíte cresce.

Diferença em relação ao CD

A entrega contínua (continuous delivery) estende a CI: todo build aprovado é empacotado e fica pronto para release, geralmente passando por ambientes de staging. O deploy contínuo (continuous deployment) vai um passo além e libera automaticamente em produção toda mudança aprovada. A CI é a base dos dois; sem uma suíte de testes confiável em cada commit, nenhum deles é seguro.

Erros comuns

Rodar a CI só à noite, deixar a branch principal vermelha por dias e tratar o pipeline como o lugar onde os testes são escritos, e não onde são executados. A CI é tanto um hábito do time quanto uma ferramenta: merges pequenos e, quando o build quebra, corrigir ou reverter.

Digite para buscar em todo o SDETRole.

Busca de texto completo com Pagefind · roda no seu navegador Abrir página de busca →