ci: reduce Windows Go test critical path - #1335
Merged
Merged
Conversation
The plain Windows Go test job is now the CI critical path, with test-only SQLite commits and a probabilistic git stress loop consuming minutes without adding proportional coverage. Keep the real scale and page boundaries, but seed large fixtures transactionally and exercise the close/reopen stress case only under the race detector while retaining a deterministic normal-suite fallback assertion. This reduces serial I/O without increasing test parallelism or weakening the production paths under test.
The four-core Windows runner spends several minutes with a package worker occupied by the CGo-heavy DuckDB suite while other long SQLite packages compete for the remaining workers. Run DuckDB on an independent Windows runner so both test sets advance concurrently, and keep routine Windows output non-verbose to avoid unnecessary log I/O.\n\nArtifact export boundary tests also created thousands of deliberately bare rows through individual commits. Seed those rows transactionally while retaining the real queue triggers, 1,024-row claim boundary, and observable export assertions; the affected tests dropped from 17.1 to 11.0 seconds locally.
roborev: Combined Review (
|
mariusvniekerk
approved these changes
Aug 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Windows Go tests became the CI critical path after redundant Linux work was removed. Recent successful jobs spend nearly all of their wall time inside the Go test command, with real SQLite fixture setup and the CGo-heavy DuckDB package competing for four runner cores; adding broad
t.Parallelcalls would increase contention without addressing that work.The suite now constructs high-cardinality SQLite fixtures transactionally while preserving the production triggers, scale comparisons, and 1,024-row claim boundary they protect. The ordinary database suite deterministically verifies the closed-writer fallback, while the concurrent close/reopen stress case remains in the existing Linux race job. On Windows, DuckDB runs on an independent runner and the main package set avoids verbose log I/O, allowing both long test groups to advance concurrently.
This trades additional Windows runner-minutes for a shorter required-check critical path. The principal review points are the package split in
.github/workflows/ci.yml, the deterministic/race coverage split ininternal/db, and the transaction-backed fixtures ininternal/artifact,internal/parser, andinternal/sync.