O que é a integração contínua
A integração contínua (CI) consiste em integrar e verificar o código com frequência e de forma automática. Toda vez que alguém envia mudanças, um servidor executa uma série de verificações para detectar erros cedo, antes que cheguem à produção.
Um pipeline de CI típico, em ordem, é:
- Instalar as dependências (
npm ci). - Lint: revisar o estilo e erros estáticos.
- Test: executar os testes automáticos.
- Build: compilar/empacotar a aplicação.
Se qualquer passo falhar, o pipeline para e o commit é marcado como quebrado. Assim ninguém integra código que não compila ou que quebra os testes.
GitHub Actions
GitHub Actions executa esses pipelines dentro do próprio repositório. Seu vocabulário:
- Workflow: um processo automatizado descrito em um arquivo YAML dentro de
.github/workflows/. - Trigger (
on): o evento que dispara o workflow (umpush, umpull_request, um horário...). - Job: um conjunto de passos que rodam em uma máquina (runner). Vários jobs podem rodar em paralelo.
- Step: cada ação dentro de um job (executar um comando ou usar uma
action reutilizável com
uses).
Um workflow de CI
name: CI
# Trigger: executa a cada push e a cada pull request
on:
push:
branches: [main]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci # instalar
- run: npm run lint # lint
- run: npm test # test
- run: npm run build # build
Leia de cima para baixo: a cada push na main ou a cada pull_request, o GitHub
inicia um runner Ubuntu, baixa o código (checkout), prepara o Node e
executa instalar → lint → test → build. Se um run devolver um código de
saída diferente de zero, o job falha e o resto não continua.
A CI é a sua rede de segurança: transforma "esqueci de testar" em uma verificação automática que não dá para pular.