Skip to content

ci: job obrigatório passa sem rodar (needs de job que falha, continue-on-error, matrix) #20

Closed

Description

@hbgit

Problema

Um job obrigatório pode passar como sucesso sem ter rodado nada. check_checks_obrigatorios (scripts/qa/ci_invariants.sh:168) não detecta estes casos:

  1. needs: de um job que falha: o job obrigatório fica skipped, e a proteção do GitHub conta check pulado como aprovado.
  2. continue-on-error: true no nível do job: a falha vira sucesso.
  3. strategy.matrix: o check passa a se chamar job (valor), não casa com o contexto obrigatório, e a PR fica esperando para sempre.

Além disso, o comentário e a mensagem em :181 ("if: ... pode nunca reportar") estão errados. Um job pulado pelo próprio if: também reporta skipped = sucesso, não fica pendente. Bloquear if: continua correto, só a justificativa precisa ser corrigida.

Proposta

  • Falhar se um job obrigatório tiver continue-on-error ou strategy.matrix.
  • Falhar se um job obrigatório tiver needs: apontando para um job fora de CHECKS_OBRIGATORIOS (por exemplo, android-e2e).
  • Corrigir o texto do if:: um check pulado conta como verde e destrava o merge.
  • Um controle negativo para cada caso.

Origem: minor adiado da revisão final do plano docs/superpowers/plans/2026-09-28-ci-correcoes-avaliacao.md (PRs #16 e #18). Relacionado a docs/ci-audit/2026-09-28-avaliacao-ci-develop.md.

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions