feat(ci): tests_timeout_minutes por produto no ci.yml reusável, com motivo obrigatório [INFRA-68520] #50
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/INFRA-68520-tests-timeout-minutes"
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 muda
tests_timeout_minutesnoci.ymlreusável (INFRA-68520, pedido do Lineu para o CI do DANI). Antes o passo "Testes (completo)" tinhatimeout-minutes: 30fixo para toda a frota e o jobbackend40 fixo.tests_timeout_minutes, padrão 30, de 5 a 90. Schema,ci_config.py, exemplo e README.ci_config.pycomotests_timeout_minutes + 10(backend_job_timeout_minutes, padrão 40). Nunca fica menor que passo + folga (teste cobre 5, 30, 60, 90).tests_timeout_motivocom ≥ 10 caracteres, senão o ci-config reprova. Exceção sem motivo é dívida.ci.yml: passo e job leem os outputs dochanges, com fallback literal igual ao padrão (|| 30,|| 40).Medido no runner real (sondas em branch, já removidas)
timeout-minutescom expressão é avaliado no passo e no job, nas formas pura efromJSON(alvos de 1 min cortados em 1m0s).backendroda comif: always()mesmo se ochangesfalhar, e sem o fallback o teto sumiria. Por isso o|| 30/|| 40. Com fallback, cortou em 1m0s.Testes
tests/ci-config: 98 passam. Novos: padrão 30/40, 45 → 55 com motivo, teto do job ≥ passo + folga, sem motivo / motivo curto / valor menor reprova, padrão explícito não exige motivo, limites e tipo (4, 91, texto, booleano, negativo), não é input, e oci.ymlusa os outputs e os publica. O teste existente dos tetos (test_servicos_efemeros_timeouts) foi atualizado para o desenho com fallback e confere que os fallbacks são 30/40. As outras 7 pastas de teste passam;hub-issue-syncnão se aplica (PR fechado sem merge). Os testes do ci.yml falham no código antigo (controle).⚠️ Limites
developdo ci-shared ir àmain(pelo/deploy-safe, não por este PR) e o produto passar a declarar a chave. O DANI declara o dele depois, com o motivo.--timeoutpor teste.timeout-minutesdo job igual ao do passo quando o job inteiro é cortado por outro motivo; medi só o corte pelo valor da expressão.🤖 Generated with Claude Code
https://claude.ai/code/session_019nhmgPciDjRhb5KSiZrePM