1. Pipeline mínimo
# .github/workflows/ci.yml
name: ci
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: "20" }
- run: npm ci
- run: npm test
- run: npm run build
2. Secrets e environments
Guarde tokens em Secrets do repositório ou do Environment (production). Nunca imprima secret em log.
env:
API_TOKEN: ${{ secrets.API_TOKEN }}
3. Deploy seguro
- Só deploy a partir de
mainou tags - Environment com reviewers para produção
- Health-check pós-deploy e rollback documentado
4. Proteção de branch
Em Settings → Branches: exigir PR, checks verdes e review antes de merge em main.
BOA PRÁTICA Actions pinadas por SHA (não só tag flutuante) reduzem risco de supply-chain.
5. Checklist
- CI em todo PR
- Secrets fora do código
- Deploy só com checks OK
- Logs de deploy auditáveis
- Runbook de rollback em 5 minutos