Skip to content

ci: give the test step room for the Fleet Manager's suite - #434

Merged
Jason Robert (jrob5756) merged 1 commit into
mainfrom
fix/ci-windows-test-timeout
Aug 14, 2026
Merged

ci: give the test step room for the Fleet Manager's suite#434
Jason Robert (jrob5756) merged 1 commit into
mainfrom
fix/ci-windows-test-timeout

Conversation

@jrob5756

Copy link
Copy Markdown
Collaborator

Problem

CI has been failing on main since #431 landed. It is not a test failure — the Windows job reports 7164 passed, 64 skipped, 41 deselected and then:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
== 7164 passed, 64 skipped, 41 deselected, 19 warnings in 596.92s (0:09:56) ===
##[error]The action 'Run tests with coverage' has timed out after 10 minutes.

The step ran for 9m56s against a 10-minute limit and was killed while writing its summary.

Why now

#431 added ~600 tests, most of them Textual App.run_test() pilots, and Windows runs the suite at roughly twice the Linux wall time. The Windows test step went from ~5m (measured on the two runs before the merge) to ~10m, landing exactly on the boundary — it passed at 9m42s on the PR and failed at 9m56s on main. Same code, opposite result.

What this changes

Raises the test step's timeout-minutes from 10 to 20.

I looked for a slow test to fix instead and there isn't one: tests/test_fleet is 522 tests in ~90s locally, about 0.17s each, which is ordinary for pilot tests. The slowest single test in the whole suite is 7.4s and predates this work. The suite genuinely got bigger, so the limit should reflect that rather than the limit pretending it didn't.

20 minutes is ~2x headroom on Windows and ~3x on Linux — still short enough to catch a genuine hang rather than burning the full job timeout on one.

Also

Caches the AST parse in test_markup_guards.py. Its ten source-scanning rules were each re-parsing all 116 files under src/conductor, sixteen full passes in total. The trees are only read, never mutated, so one parse serves every rule (14.6s → 11.6s).

The Windows job has been failing on main since #431 landed. Not a test
failure -- 7,164 passed, 0 failed -- the step hit its 10-minute limit at
9m56s and was killed.
#431 added ~600 tests, most of them Textual `App.run_test()` pilots, and
Windows runs the suite at roughly twice the Linux wall time: the step went
from ~5m to ~10m and landed right on the boundary. It passed at 9m42s on
the PR and failed at 9m56s on main, which is the same run either side of a
coin flip.
There is no single slow test to fix -- `tests/test_fleet` is 522 tests in
~90s locally, ~0.17s each, which is ordinary for pilot tests. So this
raises the limit rather than pretending the suite did not grow. 20 minutes
is ~2x headroom on Windows and ~3x on Linux: still short enough to catch a
genuine hang, instead of the current setting failing a green run.
Also caches the AST parse in `test_markup_guards.py`. Its ten source
scans were each re-parsing all 116 files under `src/conductor`, sixteen
full passes in total (14.6s -> 11.6s). The trees are only read, so one
parse serves every rule.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jrob5756
Jason Robert (jrob5756) merged commit 0554517 into mainAug 14, 2026
11 checks passed
@jrob5756
Jason Robert (jrob5756) deleted the fix/ci-windows-test-timeout branch August 14, 2026 14:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jrob5756