fix(ci): check obrigatório passa sem rodar (needs, continue-on-error, matrix) - #26
Open
vinimartinsufrr wants to merge 2 commits into
Open
vinimartinsufrr wants to merge 2 commits into
vinimartinsufrr wants to merge 2 commits into
Conversation
… matrix) check_checks_obrigatorios (scripts/qa/ci_invariants.sh) garantia que um check obrigatório existe e não tem `if:` no job, mas não pegava três outros jeitos de ele reportar sucesso sem ter rodado nada: - needs: apontando para um job fora de CHECKS_OBRIGATORIOS (ex.: android-e2e) — se esse job falhar, o obrigatório fica skipped, e skipped conta como aprovado na proteção de branch. - continue-on-error: true no job, que transforma falha em sucesso. - strategy.matrix, que muda o nome do check para "job (valor)" e não casa mais com o contexto exigido pela proteção — a PR espera para sempre. Também corrige a mensagem do caso se `if:` já coberto: dizia "pode nunca reportar", mas um job pulado por if: sempre reporta, só que reporta skipped/ verde — o bloqueio já estava certo, só a causa citada estava errada. scripts/qa/ci_invariants_test.sh cobre as três checagens novas com fixture positiva e negativa cada (ex.: needs: para outro job obrigatório não deve disparar, só needs: para um job fora do conjunto obrigatório deve), plugado no job workflow-lint logo depois do ci_invariants.sh. De passagem, força PYTHONIOENCODING=utf-8 na chamada do Python — sem isso as mensagens de falha saem corrompidas em locales que não são UTF-8 por padrão (achado ao rodar localmente neste Windows; sem efeito nos runners Linux do CI, que já usam UTF-8, mas deixa o script correto independente do host). CLAUDE.md e AGENTS.md atualizados no mesmo commit com as novas condições de falha e a lista de lacunas conhecidas (issues #19-#24), por exigência do próprio workflow-lint. Closes #20 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Owner
|
Olá @vinimartinsufrr obrigado pelas suas contribuições. Contudo, o seu PR está apresentando conflitos. Favor, atualizar com o develop. |
Resolve conflitos com o avanço de develop (issue #22 e trabalho de FCM/push): unifica a env var de override do workflow sintético (CI_WORKFLOW_PATH / CI_INVARIANTS_WORKFLOW), mescla a prosa de AGENTS.md/CLAUDE.md sobre as issues #20 e #22 fechadas, e combina os dois steps de teste do ci.yml. Também atualiza a fixture sintética de ci_invariants_test.sh com os passos de FCM que check_credenciais_fcm (vindo de develop) passou a exigir no job android-e2e. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que muda
check_checks_obrigatorios(scripts/qa/ci_invariants.sh) passa a detectar três jeitos de um check obrigatório reportar sucesso sem ter rodado:needs:apontando para um job fora deCHECKS_OBRIGATORIOS(ex.:android-e2e) — se esse job falhar, o obrigatório ficaskipped, e a proteção de branch contaskippedcomo aprovado.continue-on-error: trueno job, que transforma falha em sucesso.strategy.matrix, que muda o nome do check parajob (valor)e não casa mais com o contexto exigido pela proteção — a PR espera para sempre.Também corrige a mensagem do caso
if:já coberto: dizia "pode nunca reportar", mas um job pulado porif:sempre reporta — só que reportaskipped/verde. O bloqueio já estava certo, só a causa citada estava errada.Por quê
Item adiado da revisão final das PRs #16/#18 (auditoria de CI de 2026-09-28) — issue #20.
Como testar
scripts/qa/ci_invariants_test.shé novo: constrói workflows sintéticos mínimos emmktemp -d(viaCI_INVARIANTS_WORKFLOW, também novo) para provar que cada checagem dispara no caso ruim e não dispara numa variação vizinha sem o defeito — sem isso, as três checagens só seriam exercitadas peloci.ymlreal de hoje, que não tem nenhum dos três problemas. Plugado no jobworkflow-lint, logo depois doci_invariants.sh.De passagem: força
PYTHONIOENCODING=utf-8na chamada do Python — sem isso as mensagens de falha (têm acento) saem corrompidas em locale não-UTF-8 (achado rodando localmente no Windows; sem efeito nos runners Linux do CI, que já usam UTF-8).Fora do escopo
Os outros gaps documentados no
ci_invariants.sh(issues #19, #21-#24) — não tocados aqui. Nenhum job foi criado/renomeado/removido, então a proteção de branch não precisa ser reaplicada.Closes #20
🤖 Generated with Claude Code