fix(ci): orçamento do passo de testes do backend pelo p90 medido: 30 min, job 40 [INFRA-68352] #43

Merged
tarcisio merged 1 commit from fix/INFRA-68352-orcamento-testes-backend into develop 2026-10-05 06:39:57 -03:00
Owner

O que muda

Reajusta o orçamento de tempo do job backend do ci.yml com medida (o do #39 era estimativa): passo "Testes (completo)" 25 → 30 min, teto do job 30 → 40 min. Só ci.yml (3 linhas + comentário) e o teste que trava os números.

Medido (DANI, 04-05/10/2026, suíte de ~5.700 testes)

resultado
passo de testes, runs concluídos 18,7 – 23,3 min (n=7; p90 = 23,3)
job inteiro, runs completos (26 desde o #39) 20 – 24,3 min
run 3228 (DANI #821, job 159081) cortado em 25:00 por context deadline exceeded

O run 3228 era anômalo, não crescimento da suíte: 10% em 11,6 min contra 4–5 min nos normais, e uma pausa de 211 s num teste de migration. Três jobs do DANI começaram no mesmo minuto (contenção do runner). O teto de 25 deixava só ~7% de folga sobre o p90 normal.

Número proposto

  • Testes: 30 min (~1,3× o p90).
  • Job: 40 min (30 + ~10 dos demais passos). Subir só o passo não adiantaria: o teste exige passo < job, e o job de 30 já deixava ~6 min de folga sobre um run normal de 24.

Prova

tests/ci-config/test_servicos_efemeros_timeouts.py atualizado: vermelho contra o ci.yml anterior (1 falha), verde depois. tests/ci-config (88) e tests/ci-unico (43) verdes localmente.

⚠️ Limites

  • n=7 medições diretas. Os logs dos runs verdes não existem no disco do Forgejo (arquivo ausente); só os runs com falha têm log. A faixa dos verdes vem da duração do job, não do passo. O p90 de 23,3 é, portanto, de uma amostra viesada para runs com falha.
  • Um run ~2× mais lento (como o 3228) continua cortado mesmo com 30 min: ele precisaria de ~48 min. Isso é intencional (o teto serve para pendurado/anômalo), mas a causa da lentidão (contenção de runner, migration de 211 s) não está resolvida aqui.
  • O status do commit segue mostrando só CI / backend; o nome do passo cortado só aparece no log.
  • Base develop. Outras suítes do pr-checks rodam no CI.

Refs: INFRA-68352 (#39).

🤖 Generated with Claude Code

https://claude.ai/code/session_01UdMSC8CGmShbesE5rfVNfe

## O que muda Reajusta o orçamento de tempo do job `backend` do `ci.yml` com **medida** (o do #39 era estimativa): passo "Testes (completo)" **25 → 30 min**, teto do job **30 → 40 min**. Só `ci.yml` (3 linhas + comentário) e o teste que trava os números. ## Medido (DANI, 04-05/10/2026, suíte de ~5.700 testes) | | resultado | |---|---| | passo de testes, runs concluídos | **18,7 – 23,3 min** (n=7; p90 = 23,3) | | job inteiro, runs completos (26 desde o #39) | 20 – 24,3 min | | run **3228** (DANI #821, job 159081) | cortado em **25:00** por `context deadline exceeded` | O run 3228 era anômalo, **não crescimento da suíte**: 10% em 11,6 min contra 4–5 min nos normais, e uma pausa de 211 s num teste de migration. Três jobs do DANI começaram no mesmo minuto (contenção do runner). O teto de 25 deixava só ~7% de folga sobre o p90 normal. ## Número proposto - **Testes: 30 min** (~1,3× o p90). - **Job: 40 min** (30 + ~10 dos demais passos). Subir só o passo não adiantaria: o teste exige passo < job, e o job de 30 já deixava ~6 min de folga sobre um run normal de 24. ## Prova `tests/ci-config/test_servicos_efemeros_timeouts.py` atualizado: **vermelho** contra o `ci.yml` anterior (1 falha), **verde** depois. `tests/ci-config` (88) e `tests/ci-unico` (43) verdes localmente. ## ⚠️ Limites - **n=7 medições diretas.** Os logs dos runs **verdes** não existem no disco do Forgejo (arquivo ausente); só os runs com falha têm log. A faixa dos verdes vem da duração do job, não do passo. O p90 de 23,3 é, portanto, de uma amostra viesada para runs com falha. - **Um run ~2× mais lento (como o 3228) continua cortado** mesmo com 30 min: ele precisaria de ~48 min. Isso é intencional (o teto serve para pendurado/anômalo), mas a causa da lentidão (contenção de runner, migration de 211 s) **não está resolvida aqui**. - O status do commit segue mostrando só `CI / backend`; o nome do passo cortado só aparece no log. - Base `develop`. Outras suítes do `pr-checks` rodam no CI. Refs: INFRA-68352 (#39). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01UdMSC8CGmShbesE5rfVNfe
fix(ci): orçamento do passo de testes do backend pelo p90 medido: 30 min (job 40) [INFRA-68352]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 2m28s
a39ea9ea2a
O 1o orçamento (testes 25, job 30) era estimativa. Medido no DANI (04-05/10,
~5.700 testes): passo de testes 18,7-23,3 min (p90 23,3, n=7); job 20-24 min.
O run 3228 (DANI #821) foi cortado em 25:00 por context deadline exceeded; estava
~2x mais lento desde o início (10% em 11,6 min contra 4-5), com pausa de 211 s num
teste de migration. Teto do passo 30 (~1,3x o p90) e do job 40 (30 + ~10 dos demais).
Teste atualizado; vermelho contra o ci.yml anterior (1 falha), verde depois.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UdMSC8CGmShbesE5rfVNfe
tarcisio merged commit 2b33e0afae into develop 2026-10-05 06:39:57 -03:00
tarcisio deleted branch fix/INFRA-68352-orcamento-testes-backend 2026-10-05 06:39:58 -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!43
No description provided.