Skip to content

feat(cli): add --shard <index>/<total> to split the suite across runners#758

Merged
Chemaclass merged 1 commit into
mainfrom
feat/cli-shard
Jul 10, 2026
Merged

feat(cli): add --shard <index>/<total> to split the suite across runners#758
Chemaclass merged 1 commit into
mainfrom
feat/cli-shard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #739

Large suites want to scale horizontally across CI runners. --shard runs a deterministic slice of the test files so a matrix job can execute part of the suite, with the union of all shards covering everything exactly once.

💡 Changes

  • Add --shard <index>/<total>: a round-robin partition of the collected test files, 1-based index, validated (bad input errors with a non-zero exit).
  • Different from --parallel (which parallelizes on one host); shard applies first, then the slice can be parallelized — the two compose, as does --random-order.
  • Docs include a GitHub Actions matrix example; CHANGELOG updated.

…ers (#739)

Run a deterministic round-robin subset of the test files so a large suite can
be split across parallel CI machines; the union of all shards is the full suite
with no overlap. Index is 1-based and validated (bad input exits non-zero).
Sharding happens on the collected file list before execution, so it composes
with --parallel and --random-order.

Closes #739
@Chemaclass Chemaclass added the enhancement New feature or request label Jul 10, 2026
@Chemaclass Chemaclass self-assigned this Jul 10, 2026
@Chemaclass Chemaclass merged commit 357e023 into main Jul 10, 2026
31 checks passed
@Chemaclass Chemaclass deleted the feat/cli-shard branch July 10, 2026 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant