Skip to content

test(integration): 360s timeout for passes=10 routing tests#72

Merged
blwfish merged 1 commit into
mainfrom
fix/integration-routing-timeout
Jun 3, 2026
Merged

test(integration): 360s timeout for passes=10 routing tests#72
blwfish merged 1 commit into
mainfrom
fix/integration-routing-timeout

Conversation

@blwfish
Copy link
Copy Markdown
Owner

@blwfish blwfish commented Jun 3, 2026

Post-merge, test_audio_s3_to_routed_pcb timed out (>120s) on main (both KiCad 9 + 10), so the Integration workflow went red — while PR #71's identical content had passed.

Cause: the passes=6→10 bump from #71 (to clear a 7-vs-6 unrouted flake) pushed best-of-10 FreeRouter on the dense ESP32-S3 board past the integration workflow's global --timeout=120. On main the tag push fired Release + Tests + Integration concurrently on the self-hosted runners, so each routing pass ran slower and tipped over; PR #71 squeaked under on a quieter runner.

Fix: @pytest.mark.timeout(360) on the two passes=10 routing tests (audio_s3 + track_geometry). The marker overrides the global 120s for just those; the fast tests keep the 120s hang-guard. passes stays 10 and the unrouted bound stays 6 (SPEC §9-A3) — this is a wall-clock budget, not a correctness change. 27 passed, 1 timed out last run, so the pipeline itself is sound.

🤖 Generated with Claude Code

test_audio_s3_to_routed_pcb timed out (>120s) on main post-merge: the
passes=6→10 bump (to clear the 7>6 unrouted flake) pushed best-of-10 FreeRouter
on the dense ESP32-S3 board past the global --timeout=120, and main's tag push
ran Release + Tests + Integration concurrently on the self-hosted runners, so
each pass was slower. (PR #71 squeaked under 120s on a quieter runner.)

Add @pytest.mark.timeout(360) to the two passes=10 routing tests (audio_s3 +
track_geometry); the marker overrides the global 120s for just those, which
still guards the fast tests against genuine hangs. passes stays 10 / bound stays
6 (SPEC §9-A3) — this is a wall-clock budget, not a correctness loosening.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@blwfish blwfish merged commit 1e53e1e into main Jun 3, 2026
10 checks passed
blwfish added a commit that referenced this pull request Jun 3, 2026
…atrix

v0.11.0 published over a RED integration run: release.yml's `release` job only
`needs: test` (the ubuntu unit matrix), and the KiCad integration suite runs as
a separate workflow with no dependency on the release. So unit-green cut the
release regardless of integration.

Add an `integration` job to release.yml mirroring integration.yml (self-hosted
KiCad 9 + 10 matrix; 10.0 hard-gates, 9.0 advisory/continue-on-error) and make
`release: needs: [test, integration]`. Now a tag can't cut a release unless the
board pipeline is green on KiCad 10 for that commit.

Tradeoff (accepted): a transient self-hosted/FreeRouter flake can block a
release until re-run — correct for boards we fab. release.yml only triggers on
tags, so this is inert until the next v* tag (validated by inspection against
the proven integration.yml). Merge the passes=10 timeout fix (#72) first so the
gated integration uses the 360s budget.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@blwfish blwfish deleted the fix/integration-routing-timeout branch June 3, 2026 23:07
Sign up for free to 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