Repository navigation
Give the YAML test job 45 minutes, not 30 - #2697
Conversation
On 27 October 8 of 16 pull request and merge-queue YAML jobs hit the 30-minute limit, each after its tests had passed; the other 8 took 22 to 28 minutes. In merge-queue run 40541059060 the cancelled job failed Result once the shards had finished, which took #2695 out of the queue. Result waits about an hour for the Python shards, so the longer limit adds no time to a run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review: #2697 at f464059The change is right: one Should: 45 minutes is already nearly used up by this pull request's own run
So the gap after the summary was 13.7 minutes here, longer than the 8 minutes in the description, and the description's "passing jobs take 22 to 28 minutes" is already out of date. The Your own argument supports a higher limit: Result waits about an hour for the Python shards, so a limit of 60 adds no wall-clock time to a normal run and still stops a job that hangs. I suggest 60, and updating the comment and changelog wording to give the range we have now seen (23 to 42 minutes). If you'd rather keep 45, please note in the description that this run used 41.6 of it. Note
I'll approve once the limit question is settled either way. 🤖 Generated with Claude Code |
Brings in #2697 (YAML job limit 45 minutes) so CI reruns on the new limit. No conflicts; the PR's own diff is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.162.14 is the first release on PyPI that carries PolicyEngine/policyengine-uk#2695: 2.162.13's release run stopped at its YAML test job's 30-minute limit, so it never published, and PolicyEngine/policyengine-uk#2697 raised the limit. Its package code outside the tests is the head commit the previous pin installed (b71ce793), so the interim git source goes and the lock takes the registry release. This pair's local-area cut stays the build at db50ae8, which records policyengine-uk 2.162.12; its national is built at this commit on 2.162.14. The uprating and bonus-sacrifice pins keep every value, concept coverage finds no input added or removed, and the coverage manifest, the H2 spine fixture, the version mentions and the US worker identity's lock digest move with the lock. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes #2698
What and why
The
Test / YAMLjob's limit goes from 30 minutes to 45.On 27 October, 8 of the 16 YAML jobs that finished in pull request and merge-queue runs hit the 30-minute limit (two more were cancelled by newer pushes). Each had already logged its
N passedsummary with no failures. The other 8 took 22 to 28 minutes.A cancelled YAML job fails
Test / Result. In the merge queue, Result runs only once the Python shards finish, about an hour in, and the queue then drops the pull request; adding it back runs the whole suite again. That took #2695 out of the queue today (run 40541059060).45 minutes leaves room for a slow runner and still stops a hung job. It adds no time to a run, since Result waits about an hour for the Python shards anyway.
This doesn't explain why the job slowed down: on 10 October it took about 4 minutes (run 38085920460). Most of the test step's time now falls outside pytest's own reported duration. In three passing jobs (runs 40496057048, 40516287528, and attempt 2 of 40525399987), pytest reported about 8 minutes, but its
5107 passedsummary appeared in the log 16 to 17 minutes into the step, and the step ended about 8 minutes after that.Test plan
make format: not applicable, no Python files changed.changelog.d/ci-yaml-test-timeout.changed.md(.github/check_changelog_fragments.pypasses).policyengine_uk/tests/code_health/test_ci_runner_variables.pyandtest_ci_test_shards.pypass locally (126 passed).Test / YAMLandTest / Resultunder the new limit (.github/**counts as code, so the full suite runs).Reproducer: n/a: CI workflow and changelog fragment only; nothing under policyengine_uk/, pyproject.toml or uv.lock changes.
axiom: n/a: CI only, no policy change
🤖 Generated with Claude Code