Usando em CI/CD
Publique sinais no fim dos jobs e faça o gate bloquear a promoção quando os critérios da feature não forem atendidos.
Ordem recomendada
Execute os testes, produza o relatório, envie-o mesmo quando houver falhas e só então avalie o gate. Use if: always() para não perder evidências de um job vermelho.
01Executar o runner E2E02Gerar CTRF ou output nativo03Enviar relatório e cobertura04Avaliar o gate de prontidão05Promover ou interromper o deployGitHub Actions
- name: Publicar resultados E2E
if: always()
env:
FEATURE_ROLLOUT_TOKEN: ${{ secrets.FEATURE_ROLLOUT_TOKEN }}
run: |
curl --fail-with-body \
-H "Authorization: Bearer $FEATURE_ROLLOUT_TOKEN" \
-H "X-Git-SHA: $GITHUB_SHA" \
--data-binary @ctrf-report.json \
"https://feature-rollout.dev/api/v1/test-results?featureId=LBP-PIX-001&format=auto"Política de falha
Falhar o upload por indisponibilidade da API e falhar o rollout por testes reprovados são eventos diferentes. Trate ambos explicitamente para não confundir problema de integração com problema de qualidade.
Sempre preserve o relatório local
Configure também o upload de artifacts do próprio CI. Ele funciona como cópia de segurança e mantém arquivos grandes fora da Function.