6 min leitura • Guide 84 of 877
Configurando Portões de Qualidade para Releases
Releasings sem verificações de qualidade levam a incidentes de produção, patches de emergência, e confiança erodida. Portões de qualidade criam checkpoints automatizados que garantem que cada release atenda seus padrões. O GitScrum integra com ferramentas CI/CD para impor portões e fornecer visibilidade de release.
Por Que Portões de Qualidade Importam
| Sem Portões | Com Portões |
|---|---|
| "Funcionou na minha máquina" | Verificado em ambiente CI |
| Bugs de produção | Capturado antes do deploy |
| Patches de emergência | Releases confiantes |
| Culpa e estresse | Qualidade sistemática |
| Releases inconsistentes | Processo repetível |
Categorias de Portão de Qualidade
Tipos de Portão
CATEGORIAS DE PORTÃO DE QUALIDADE
═════════════════════════════════
AUTOMATIZADO (deve passar):
├── Todos testes passando
├── Cobertura de código ≥ threshold
├── Sem vulnerabilidades críticas
├── Linting passa
├── Build sucede
└── Benchmarks de performance atendidos
SEMI-AUTOMATIZADO (verificado + aprovado):
├── Scan de segurança revisado
├── Mudanças breaking documentadas
├── Mudanças de API aprovadas
├── Migrações de database testadas
└── Feature flags configuradas
MANUAL (aprovação humana):
├── Revisão de código completa
├── Sign-off QA
├── Aprovação stakeholder
├── Release notes revisadas
└── Plano de rollback confirmado
Configuração de Portão Padrão
PORTÕES DE QUALIDADE DE RELEASE
═══════════════════════════════
PORTÃO 1: BUILD
├── Código compila ✓
├── Dependências resolvem ✓
├── Artefato gerado ✓
└── Status: PASS/FAIL
PORTÃO 2: TEST
├── Testes unitários passam ✓
├── Testes de integração passam ✓
├── Cobertura ≥ 70% ✓
├── Sem regressão de teste ✓
└── Status: PASS/FAIL
PORTÃO 3: QUALIDADE
├── Portão SonarQube passa ✓
├── Sem novos issues críticos ✓
├── Complexidade dentro de limites ✓
├── Duplicação < 5% ✓
└── Status: PASS/FAIL
PORTÃO 4: SEGURANÇA
├── Scan SAST passa ✓
├── Scan de dependência passa ✓
├── Sem CVEs críticos ✓
├── Scan de secrets limpo ✓
└── Status: PASS/FAIL
PORTÃO 5: APROVAÇÃO
├── Revisão de código completa ✓
├── Sign-off QA ✓
├── Aprovação produto ✓
└── Status: PASS/FAIL
RELEASE: Todos portões VERDE = pode deploy
Dashboard de Release do GitScrum
Visão de Status de Portão
DASHBOARD DE PRONTIDÃO DE RELEASE
═════════════════════════════════
Release: v2.4.0
Branch: release/2.4.0
Target: 20 Março, 2024
┌─────────────────────────────────────────────────┐
│ PORTÕES DE QUALIDADE │
├─────────────────────────────────────────────────┤
│ │
│ ✓ Build ✓ Tests ✓ Quality │
│ passed 2m ago 98% pass A rating │
│ 87% coverage │
│ │
│ ✓ Security ⏳ Approval │
│ 0 critical 2/3 complete │
│ 3 medium Missing: QA sign-off │
│ │
├─────────────────────────────────────────────────┤
│ Overall: BLOCKED (awaiting QA) │
│ [View Details] [Request QA Review] │
└─────────────────────────────────────────────────┘
Checklist de Release
TAREFA DE CHECKLIST DE RELEASE
══════════════════════════════
## Portões Automatizados
- [x] Pipeline de build passa
- [x] Testes unitários passam (236/236)
- [x] Testes de integração passam (42/42)
- [x] Threshold de cobertura atendido (87% ≥ 70%)
- [x] Portão de qualidade SonarQube passa
- [x] Scan de segurança limpo
## Verificações Manuais
- [x] Revisão de código aprovada (3 revisores)
- [x] Deployment de staging testado
- [ ] Sign-off QA pendente
- [x] Aprovação product owner
## Documentação
- [x] CHANGELOG atualizado
- [x] Guia de migração completo
- [x] Docs de API atualizados
- [x] Release notes rascunhados
## Deployment
- [ ] Feature flags configurados
- [ ] Plano de rollback documentado
- [ ] On-call confirmado
- [ ] Alertas de monitoramento definidos
Configuração de Portão
Configurações de Threshold
CONFIGURAÇÃO DE THRESHOLD DE QUALIDADE
══════════════════════════════════════
THRESHOLDS DE TESTE:
├── Cobertura mínima: 70%
├── Delta de cobertura: Sem decrease
├── Taxa de aprovação de teste: 100%
├── Tolerância de teste flaky: 0
└── Limite de tempo de teste: 30 min
THRESHOLDS DE QUALIDADE:
├── Rating de qualidade: A ou B
├── Novos issues: 0 crítico, 0 alto
├── Complexidade: Max 15 por função
├── Duplicação: < 5%
└── Dívida técnica: < 10 dias
THRESHOLDS DE SEGURANÇA:
├── Vulnerabilidades críticas: 0
├── Vulnerabilidades altas: 0
├── Médias: Revisão obrigatória
├── Baixas: Documentar e rastrear
└── Secrets: 0 detectados
Política de Bypass de Portão
GOVERNANÇA DE BYPASS DE PORTÃO
═══════════════════════════════
NUNCA BYPASS:
├── Segurança crítica (0 tolerância)
├── Falhas de build
├── Falhas críticas de teste
└── Detecção de secrets
PODE BYPASS COM APROVAÇÃO:
├── Cobertura ligeiramente abaixo do threshold
├── Issues de segurança médias (documentadas)
├── Testes flaky conhecidos
├── Issues de qualidade não-críticos
└── Requer: 2 aprovadores seniores
DOCUMENTAÇÃO DE BYPASS:
├── Razão para bypass
├── Avaliação de risco
├── Plano de remediação
├── Cadeia de aprovação
└── Timeline para correção
RASTREAMENTO:
├── Todos bypasses logados
├── Revisão mensal de bypass
├── Análise de tendência
├── Melhoria de processo
Integração CI/CD
Configuração de Pipeline
PORTÕES DE QUALIDADE EM CI/CD
═════════════════════════════
stages:
- build
- test
- quality
- security
- approval
- deploy
quality_gate_check:
stage: quality
script:
- sonarqube-scan
- check-quality-gate
rules:
- if: $CI_COMMIT_BRANCH =~ /^release\//
allow_failure: false
security_gate_check:
stage: security
script:
- dependency-scan
- sast-scan
- secret-scan
rules:
- if: $CI_COMMIT_BRANCH =~ /^release\//
allow_failure: false
deploy_production:
stage: deploy
script:
- deploy-to-production
needs:
- quality_gate_check
- security_gate_check
- manual_approval
when: manual
Webhook do GitScrum
SINC DE PORTÃO GITSCRUM
═══════════════════════
CONFIGURAÇÃO DE WEBHOOK:
├── Endpoint: API de release GitScrum
├── Events: Conclusão de pipeline
├── Payload: Resultados de portão
└── Auth: Chave API
RESULTADOS DE SINC:
├── Status de portão atualizado no GitScrum
├── Checklist de release auto-checado
├── Notificações disparadas
├── Dashboard refreshed
└── Status de bloqueio atualizado
Melhores Práticas
Para Portões de Qualidade
- Comece com essenciais — Build, teste, segurança
- Automatize tudo possível — Portões manuais atrasam releases
- Processo de bypass claro — Apenas para verdadeiras emergências
- Feedback rápido — Portões devem executar em <15 min
- Status visível — Todos veem status de portão
Anti-Padrões
ERROS DE PORTÃO DE QUALIDADE:
✗ Portões manuais demais
✗ Fácil de bypass
✗ Portões que levam horas
✗ Sem rastreamento de bypass
✗ Portões ignorados em emergências
✗ Thresholds muito lenientes
✗ Sem notificação de falhas