Skip to content

Shard CI tests across runners and add one required CI check - #915

Merged
sds merged 3 commits into
mainfrom
ci/shard-tests
Nov 5, 2026
Merged

sds merged 3 commits into
mainfrom
ci/shard-tests

Conversation

@sds

@sds sds commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

Split each supported Ruby/OS combination across three GitHub runners. CI benchmarks improve complete workflow time from 4m 08s to 2m 15s (46% faster); two shards took 2m 51s. Each runner retains the existing local worker pool.

The shard selector deterministically assigns every example to exactly one runner. Sixteen new examples cover partition completeness, balance, ordering, and invalid shard settings. Each runner still verifies its executed example IDs and merges local worker coverage; unique Coveralls flags preserve coverage across all shards.

Add a single final check named CI for repository rulesets. It depends on every test shard and lint, explicitly fails for failed/canceled/skipped dependencies, and finalizes coverage reporting. Move lint into the same workflow so the required check includes it. Require CI instead of individual Ruby/OS checks.

GitHub Actions benchmarks (complete workflow, including setup and reporting):

Shards per Ruby/OS combination Matrix jobs Elapsed
1 (baseline) 6 4m 08s
2 12 2m 51s
3 (benchmark) 18 2m 20s
3 (final PR verification) 18 2m 15s

Validation: both benchmark workflows and final PR-head CI pass, including all 18 shards, lint, and final coverage reporting. Logs verify all 10,170 example executions (1,695 on each of six Ruby/OS combinations), with consistent suite identities and complete shard coverage. Local two-shard execution passes all 1,695 examples (the existing 1,679 plus 16 new shard-selector tests). Actionlint and RuboCop pass. The required-check predicate rejects failure/cancellation/skipped results in exhaustive local truth-table checks. Final PR-head verification: successful run on ce3e508. Linux test steps take 9–19s; Windows test steps take 59–96s. No repository ruleset settings were changed; the check is ready to select as CI.

@sds
sds merged commit 653a990 into main Nov 5, 2026
39 checks passed
@sds
sds deleted the ci/shard-tests branch November 5, 2026 08:26
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