fix(ci): verificar-docs separa falha de setup de achado de docs [INFRA-68918] #64
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/INFRA-68918-verificar-docs-setup-vs-achado"
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
O reusável
verificar-docs-produto.ymlpassa a distinguir falha de SETUP de achado de DOCS. Epic de gates falsos INFRA-68918 (frente de diagnóstico).Hoje o check
Verificar docs/ (ADR 0012)vermelho confunde:Os dois viravam o mesmo "failure", mandando investigar o docs/ quando o problema era infra.
Caso real (HelpCor, hoje)
Verificar docs/vermelho em todos os PRs do helpcor-admin era o secretORG_LEITURA_TOKENausente no repo/usuáriotarcisio— o docs/ está conforme (total 0 achados, confirmado por reprodução e independentemente pela sessão do HelpCor). Custou ~1h até isolar que não era documentação.Mudança (aditiva — NÃO muda o resultado do job)
Passo
Natureza da falha — setup ou documentação(if: failure()): lêsteps.rodar.outcome. Se o verificador reprovou → mensagem DOCS (corrija o docs/). Se nem rodou → mensagem SETUP apontando a causa (token/clone/pip) e deixando claro que o docs/ não foi reprovado. Só rotula; o veredito do verificador é o mesmo.Validação
tests/ci-unico(TestNaturezaDaFalha: existe,if: failure(), distingue poroutcome, roda depois do verificador) + soberania verdes. YAML válido.Epic: INFRA-68918
🤖 Generated with Claude Code
Causa raiz do HelpCor (Lineu, medido): o token NÃO estava ausente — existe desde 05/10. O chamador do HelpCor passava só via `with: org_leitura_token: ${{ secrets.X }}`, e o Forgejo NÃO resolve secret dentro de `with:` de workflow_call: chega vazio. Os 7 produtos verdes todos declaram `secrets: ORG_LEITURA_TOKEN:` no caller (caminho 2). HelpCor: 18/18 falhas por usar só o caminho 1. Atualiza o reusável para não gerar outro caso (aditivo, sem mudar comportamento): - descrição do input org_leitura_token: alerta que with: chega vazio; o caller TEM de declarar secrets: (input mantido só por compat); - cabeçalho (ordem do token): caminho 1 marcado como não-funcional sozinho, caminho 2 (secrets:) é o que funciona e é obrigatório; - mensagem do exit 1 (sem token) e do rótulo de SETUP: citam explicitamente "declare secrets: ORG_LEITURA_TOKEN: no caller". Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SCXwCdbp97ioN6p3rC3diTO commit anterior citava 'with: ... ${{ secrets.X }}' literalmente nas mensagens de erro dentro de run: — e o test_script_do_clone_nao_tem_expressao_do_runner pegou: o Forgejo expande ${{ }} ANTES do shell (o \ não escapa), então um ${{ secrets.X }} numa mensagem injetaria o secret. Reescrito como "pelo input with: org_leitura_token (interpolando o secret)", sem o literal ${{. Mesma informação, sem o risco que o próprio teste existe para barrar. 84 testes verdes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SCXwCdbp97ioN6p3rC3diT