fix(ci-ok): normaliza chaves <chamador>.<job> do needs e imprime diagnóstico [INFRA-68925] #68

Merged
tmf-ia merged 1 commit from fix/INFRA-68925-ci-ok-chaves-reusavel into develop 2026-10-08 20:43:48 -03:00
Owner

Problema

O CI / ci-ok do ci.yml reusável (INFRA-68925, já na main) reprova em 2s no DANI, o único consumidor do ci.yml@main. Os 4 jobs que ele agrega ficam verdes (run 3637 do tarcisio/DANI, PR #907). Como CI / ci é o status do job chamador, a proteção do DANI também fica vermelha: o #907 e o release do DANI estão travados.

Causa: HIPÓTESE, não verificada. O log do Forgejo 15 não sai por API. A suspeita é que, no reusável expandido, as chaves de toJSON(needs) venham como <chamador>.<job> (o runner loga call.verificar no verificar-docs). O ci-ok do tmf-platform passa porque lá o workflow não é reusável.

O que muda

  • normalizar_chaves(): tira o prefixo até o último ponto. Se duas chaves colidirem depois disso, ficam como vieram e o avaliador reprova (ambiguidade não vira verde).
  • resumo_bruto(): imprime o tamanho, as chaves e os results do NEEDS_JSON, nunca outputs. O próximo run prova a causa, seja ela qual for.

Prova

  • pytest tests/ci-ok: 17 passed. Sem a correção, 3 dos 5 testes novos falham.

⚠️ Antes do próximo release develop→main

O #62 já levou o mesmo ci-ok para o ci-base.yml legado (HelpCor, Hub, TMF9). Se a causa não for a chave, o release quebra esses três produtos. Não liberar sem um run real verde do ci-ok num consumidor reusável.

🤖 Generated with Claude Code

https://claude.ai/code/session_017QrAM1chSgVpSwDrKJVLVn

## Problema O `CI / ci-ok` do `ci.yml` reusável (INFRA-68925, já na main) reprova em 2s no DANI, o único consumidor do `ci.yml@main`. Os 4 jobs que ele agrega ficam verdes (run 3637 do tarcisio/DANI, PR #907). Como `CI / ci` é o status do job chamador, a proteção do DANI também fica vermelha: o #907 e o release do DANI estão travados. **Causa: HIPÓTESE, não verificada.** O log do Forgejo 15 não sai por API. A suspeita é que, no reusável expandido, as chaves de `toJSON(needs)` venham como `<chamador>.<job>` (o runner loga `call.verificar` no verificar-docs). O ci-ok do tmf-platform passa porque lá o workflow não é reusável. ## O que muda - `normalizar_chaves()`: tira o prefixo até o último ponto. Se duas chaves colidirem depois disso, ficam como vieram e o avaliador reprova (ambiguidade não vira verde). - `resumo_bruto()`: imprime o tamanho, as chaves e os results do `NEEDS_JSON`, nunca `outputs`. O próximo run prova a causa, seja ela qual for. ## Prova - `pytest tests/ci-ok`: 17 passed. Sem a correção, 3 dos 5 testes novos falham. ## ⚠️ Antes do próximo release develop→main O #62 já levou o mesmo ci-ok para o `ci-base.yml` legado (HelpCor, Hub, TMF9). Se a causa não for a chave, o release quebra esses três produtos. Não liberar sem um run real verde do ci-ok num consumidor reusável. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017QrAM1chSgVpSwDrKJVLVn
fix(ci-ok): avaliador normaliza chaves <chamador>.<job> e imprime diagnóstico do needs [INFRA-68925]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 3m15s
0769ceab44
O ci-ok do ci.yml reusável reprova em 2s no DANI (run 3637, único consumidor do
ci.yml@main), com os 4 jobs verdes. Hipótese não verificada (o log do Forgejo 15
não sai por API): no reusável expandido, as chaves de toJSON(needs) vêm como
'<chamador>.<job>'.

- normalizar_chaves(): tira o prefixo até o último ponto; colisão fica como veio
  (e reprova por job desconhecido).
- resumo_bruto(): imprime tamanho, chaves e results do NEEDS_JSON (nunca outputs),
  para o próximo run provar a causa, seja ela qual for.
- 5 testes novos; 3 falham sem a correção.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017QrAM1chSgVpSwDrKJVLVn
tmf-ia merged commit db5147adf8 into develop 2026-10-08 20:43:48 -03:00
Sign in to join this conversation.
No reviewers
No labels
seguranca
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
TMF/ci-shared!68
No description provided.