ci: teste heavy fora do PR; roda no push e de madrugada [INFRA-70586] #137

Merged
tmf-ia merged 1 commit from infra/INFRA-70586-heavy-fora-do-pr into develop 2026-10-20 08:35:19 -03:00
Owner

O que muda

Decisão do operador (19/10/2026): o PR roda os testes rápidos, e o teste pesado roda no push do develop/main e de madrugada.

Marca única na frota: @pytest.mark.heavy (pytest) e *.heavy.test.* (vitest). O comportamento do reusável muda só em pull_request:

  • backend: exporta PYTEST_ADDOPTS="-m 'not heavy'". Vale também para o backend_test_cmd customizado; um -m explícito do produto prevalece.
  • frontend: vitest run ... --exclude **/*.heavy.test.*, com set -f para o glob ir literal ao vitest. Com frontend_test_cmd customizado, só avisa.

Em push e schedule, roda tudo, e os checks obrigatórios não mudam de nome.

O guia de adoção ganhou uma seção nova: como registrar a marca e o schedule da madrugada no ci.yml do produto.

Prova

  • TDD: tests/ci-config/test_heavy_fora_do_pr.py.
    • Os 2 testes de workflow estavam vermelhos antes e ficaram verdes.
    • Os 2 testes de comportamento rodam um pytest de verdade: com o PYTEST_ADDOPTS, sai 1 passed, 1 deselected; sem ele, 2 passed.
  • Suíte inteira: 1108 passed, 93 skipped.

Efeito

Nada muda até um produto marcar testes como heavy. O ganho vem quando a Platform marcar os testes lentos do SD (TMFP-70587).

INFRA-70586

🤖 Generated with Claude Code

## O que muda Decisão do operador (19/10/2026): o PR roda os testes rápidos, e o teste pesado roda no push do develop/main e de madrugada. Marca única na frota: `@pytest.mark.heavy` (pytest) e `*.heavy.test.*` (vitest). O comportamento do reusável muda só em `pull_request`: - **backend:** exporta `PYTEST_ADDOPTS="-m 'not heavy'"`. Vale também para o `backend_test_cmd` customizado; um `-m` explícito do produto prevalece. - **frontend:** `vitest run ... --exclude **/*.heavy.test.*`, com `set -f` para o glob ir literal ao vitest. Com `frontend_test_cmd` customizado, só avisa. Em `push` e `schedule`, roda tudo, e os checks obrigatórios não mudam de nome. O guia de adoção ganhou uma seção nova: como registrar a marca e o `schedule` da madrugada no `ci.yml` do produto. ## Prova - TDD: `tests/ci-config/test_heavy_fora_do_pr.py`. - Os 2 testes de workflow estavam vermelhos antes e ficaram verdes. - Os 2 testes de comportamento rodam um pytest de verdade: com o `PYTEST_ADDOPTS`, sai `1 passed, 1 deselected`; sem ele, `2 passed`. - Suíte inteira: **1108 passed**, 93 skipped. ## Efeito Nada muda até um produto marcar testes como heavy. O ganho vem quando a Platform marcar os testes lentos do SD (TMFP-70587). INFRA-70586 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ci: teste heavy fora do PR; roda no push e de madrugada [INFRA-70586]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 4m40s
f0f025ee8d
Decisão do operador (19/10/2026). Marca única: @pytest.mark.heavy e *.heavy.test.*.
Em pull_request: backend exporta PYTEST_ADDOPTS="-m 'not heavy'" (vale para o
backend_test_cmd customizado); frontend acrescenta --exclude **/*.heavy.test.* ao vitest.
Push e schedule rodam tudo; checks obrigatórios não mudam de nome. Guia de adoção atualizado.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tmf-ia merged commit ae624f79d5 into develop 2026-10-20 08:35:19 -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!137
No description provided.