ci: pr-checks.yml — o ci-shared passa a rodar seus testes em PR [INFRA-67867] #27

Merged
tarcisio merged 2 commits from ci/INFRA-67867-pr-checks into main 2026-10-01 07:56:55 -03:00
Owner

O quê

Primeiro CI do próprio ci-shared: pr-checks.yml, job único testes (on: pull_request para main, e push em main). Roda unittest discover em cada tests/*/, falha se qualquer suíte falhar ou se não houver nenhuma; guard de pipefail; sem if: de job.
Inclui a correção de tests/ci-config/test_auditoria.py:202, que setava os.environ["PIP_AUDIT_BIN"] sem restaurar.

Por quê

Todos os outros workflows do repo são workflow_call: nenhum roda em PR aqui. Os PRs #21–#23 mergearam com 0 checks e as 5 suítes nunca rodaram em PR. O vazamento de variável derrubava 2 testes do ci-config em discover (isolados passavam) e ninguém viu.

Como testar

O script do step, extraído do YAML, foi rodado na imagem real tmf-ci-python:3.12 (amd64): 5 suítes, rc=0 (150 testes OK, 3 pulados por falta de pip-audit). Negativos: suíte quebrada de propósito → com falha: 1, rc=1; sem tests/ → rc=1 com mensagem; guard de pipefail rc=0. Correção do teste: antes 2 falhas, depois 67 OK.

Não verificado

Execução no act_runner e o nome do contexto de status (esperado PR checks (ci-shared) / testes (pull_request)). Não exigir na branch protection antes de aparecer num PR real (INFRA-67859).
Este PR mergeia sem check exigido (ovo e galinha). A correção de teste e o workflow têm de ir juntos, senão o check nasce vermelho.
Pode exigir rebase trivial com o PR do INFRA-67721 (tests/ci-unico/test_ci.py).

Refs: INFRA-67867, INFRA-67859

🤖 Generated with Claude Code

https://claude.ai/code/session_01G2e3V17tRc4mAZ4ea1XX1e

## O quê Primeiro CI do próprio `ci-shared`: `pr-checks.yml`, job único `testes` (`on: pull_request` para `main`, e `push` em `main`). Roda `unittest discover` em **cada** `tests/*/`, falha se qualquer suíte falhar ou se não houver nenhuma; guard de `pipefail`; sem `if:` de job. Inclui a correção de `tests/ci-config/test_auditoria.py:202`, que setava `os.environ["PIP_AUDIT_BIN"]` sem restaurar. ## Por quê Todos os outros workflows do repo são `workflow_call`: nenhum roda em PR aqui. Os PRs #21–#23 mergearam com 0 checks e as 5 suítes nunca rodaram em PR. O vazamento de variável derrubava 2 testes do `ci-config` em `discover` (isolados passavam) e ninguém viu. ## Como testar O script do step, extraído do YAML, foi rodado na imagem real `tmf-ci-python:3.12` (amd64): 5 suítes, rc=0 (150 testes OK, 3 pulados por falta de `pip-audit`). **Negativos:** suíte quebrada de propósito → `com falha: 1`, rc=1; sem `tests/` → rc=1 com mensagem; guard de pipefail rc=0. Correção do teste: antes 2 falhas, depois 67 OK. ## Não verificado Execução no `act_runner` e o nome do contexto de status (esperado `PR checks (ci-shared) / testes (pull_request)`). **Não exigir na branch protection antes de aparecer num PR real** (INFRA-67859). Este PR mergeia sem check exigido (ovo e galinha). A correção de teste e o workflow têm de ir juntos, senão o check nasce vermelho. Pode exigir rebase trivial com o PR do INFRA-67721 (`tests/ci-unico/test_ci.py`). Refs: INFRA-67867, INFRA-67859 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01G2e3V17tRc4mAZ4ea1XX1e
test_auditoria.py:202 fazia os.environ['PIP_AUDIT_BIN'] = sys.executable sem
restaurar. Em 'unittest discover' os testes seguintes (controle positivo do
pyjwt 2.13.0 e 'ambiente sem manifest') passavam a usar o python como se fosse
o pip-audit e falhavam; isolados, passavam. Ninguem viu porque o repo nao tem
CI em PR (INFRA-67867). Restaura a variavel no finally.

Prova: antes, 'discover -s tests/ci-config' = 2 falhas; depois = 67 OK (com
pip-audit no PATH) e, na imagem tmf-ci-python:3.12, 67 OK / 3 pulados.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2e3V17tRc4mAZ4ea1XX1e
ci: pr-checks.yml — o ci-shared passa a rodar seus testes em PR [INFRA-67867]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 20s
9cdaa976ac
Todos os workflows do repo sao workflow_call: nenhum roda quando se abre PR
AQUI (PRs #21-#23 mergearam com 0 checks). Novo workflow com gatilho proprio,
job unico 'testes' (nome fixo = contexto de branch protection, INFRA-67859):
unittest discover em cada tests/*/, falha se qualquer suite falhar ou se nao
houver suite; guard de pipefail; sem 'if:' de job.

Prova (script do step extraido do YAML e rodado na imagem real
tmf-ci-python:3.12, linux/amd64): positivo = 5 suites, rc=0; negativo 1 =
suite quebrada de proposito -> 'com falha: 1', rc=1; negativo 2 = sem tests/ ->
rc=1 com mensagem; guard pipefail rc=0.
NAO PROVADO: execucao no act_runner (gatilho pull_request e o contexto
'PR checks (ci-shared) / testes (pull_request)' so existem apos um run real);
imagem so amd64. A branch protection (INFRA-67859) so deve exigir o contexto
depois de ele aparecer num PR.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2e3V17tRc4mAZ4ea1XX1e
tarcisio deleted branch ci/INFRA-67867-pr-checks 2026-10-01 07:56:55 -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!27
No description provided.