Skip to content

Allocate more CI runners to Windows with asymmetric sharding - #916

Merged
sds merged 3 commits into
mainfrom
perf/asymmetric-shards
Nov 5, 2026
Merged

sds merged 3 commits into
mainfrom
perf/asymmetric-shards

Conversation

@sds

@sds sds commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

Allocate one Linux shard and five Windows shards per supported Ruby version instead of three shards for both operating systems. This keeps 18 test jobs and full Ruby/OS coverage while assigning more of the available runners to the Windows bottleneck. Extend the shard-selector examples to cover five shards.

GitHub CI measurements:

Configuration Complete workflow
Current main, fresh control rerun 2m 17s
Asymmetric benchmark 1m 58s
PR confirmation 1m 59s
Final head verification 1m 45s

All three candidate runs are faster than the fresh control. Final verification passes every test job, lint, coverage finalization, the required CI check, and external coverage statuses. Logs verify the complete 1,698-example suite on each of six Ruby/OS combinations (10,188 executions), with matching discovery identities across shards. Local shard-selector examples, RuboCop, and actionlint pass.

Coverage flags identify the Ruby/OS/shard index and shard count rather than global matrix position, so changing the shard layout does not compare partial coverage against unrelated old shards. Combined coverage remains unchanged at 92.408%.

@sds
sds merged commit 5bf5c3c into main Nov 5, 2026
39 checks passed
@sds
sds deleted the perf/asymmetric-shards branch November 5, 2026 18:40
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