feat(ci): agregador ci-ok + fim do || true nos gates de install [INFRA-68925] #60
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/INFRA-68925-ci-ok-e-gates"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
O que
Implementa no
ci-shared(a origem) o padrão único de correção do epic de gates falsos INFRA-68918 — subtask INFRA-68925.(a) Agregador
ci-oknoci.ymlreusávelJob final
ci-ok(needs:todos os jobs,if: always(), roda sempre) que reprova se qualquer job terminoufailure/cancelledouskippedsem motivo legítimo — o falso verde que o Forgejo publica quando umneeds:falha. Cérebro emscripts/ci/avaliar_gate_final.py(função pura, testada) com anti-deriva: job novo noci.ymlsem regra reprova. Espelha o padrão já adotado no tmf-platform (TMFP-68058).É o único check que a proteção de branch precisa exigir (
CI / ci-ok), no lugar do globCI /*ou de jobs individuais que publicam "não se aplica" como success (achados C1/C2).(b) Fim do
|| truenos gates de install (TMFP-61455)ci-base.ymleci.ymlmascaravam falha depip installdosrequirements-dev/-appcom... || true. Agoraif [ -f "$f" ]; then pip install ...; fi: arquivo ausente continua opcional, mas falha de install volta a reprovar o gate.Validação
Todas as suítes
tests/*/verdes (incl. a novatests/ci-ok/— 9 testes: failure/cancelled/skipped/changes-falho/deriva + oci-okdepende de todos os jobs comalways()). Contrato de jobs atualizado 4→5 emtest_ci.pyetest_reuso_por_tree.py. YAML dos reusáveis válido.Fora deste PR (registrado)
TMF/ORG engenharia/padroes/workflows-forgejo.md— parte (c) da 68925, com o Lineu.CI / ci-ok— achados C1–C4, ação do operador (bot leva 403).|| true/set +erestantes são idioma benigno (git fetch, grep de lista vazia, retry comrccapturado +tee/PIPESTATUS); o único que mascarava gate era o install (corrigido aqui).Epic: INFRA-68918 · Subtask: INFRA-68925
🤖 Generated with Claude Code
Implementa na origem (ci-shared) o "padrão único de correção" do epic de gates falsos INFRA-68918: (a) Agregador ci-ok no ci.yml reusável — job final (needs: todos, if: always()) que reprova failure/cancelled ou skip sem motivo, via scripts/ci/avaliar_gate_final.py (função pura + anti-deriva). É o ÚNICO check que a proteção precisa exigir (CI / ci-ok), no lugar do glob CI /* ou de jobs individuais que publicam "não se aplica" como success. ADITIVO: não altera os 4 jobs existentes; só vira required quando o operador ajustar a proteção (achados C1-C4: INFRA-68919/20/21/22/24 — do operador, bot leva 403). (b) Remove o || true que mascarava falha de pip install de requirements-dev/-app em ci-base.yml e ci.yml (achado TMFP-61455): arquivo opcional vira "if [ -f ]; then ... fi" e a falha de install volta a reprovar o gate. Testes: tests/ci-ok/ (lógica do avaliador + anti-deriva contra o ci.yml); contrato de jobs atualizado 4->5 em test_ci.py e test_reuso_por_tree.py. Todas as suítes verdes. Pendente (fora deste PR): doc do padrão em TMF/ORG (com o Lineu) e a troca da proteção de branch nos repos (operador). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SCXwCdbp97ioN6p3rC3diT