CI: shard tests across 4 runners; heavy tests on main and nightly (#350)
* CI: build tests once and run them in 4 nextest shards Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT * CI: quote the shard arguments Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT * CI: extract the test archive into the checkout; skip the heaviest tests on pull requests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT * Docs: CI shards and the tests pull requests skip Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
511d105dcb
commit
d15869ab85
4 files changed
+151
-11
No files matched your search
@@ -45,3 +45,23 @@ Run `cargo xtask test` to build with this profile and run the test binaries conc
|
||||
with doc tests alongside. Arguments after `--` go to each test binary, for example
|
||||
`cargo xtask test -- shell`. To run the test binaries sequentially instead, use
|
||||
`cargo test --workspace --profile ci`.
|
||||
|
||||
## CI sharding and heavy tests
|
||||
|
||||
On GitHub, one job builds the tests into a
|
||||
[cargo-nextest](https://nexte.st/) archive and four jobs run a quarter of the tests each
|
||||
(`--partition slice:N/4`, settings in `.config/nextest.toml`); doc tests run in their own job.
|
||||
Pull requests skip a few heavy tests (each takes one to four minutes); they run on every push to
|
||||
`main`, nightly, and in `cargo xtask test`:
|
||||
|
||||
- `solvecraft-engine`: `tests::hostile_params_never_panic`, everything in `tests::robustness`,
|
||||
`pattern_suppress_tests::enclosure_arc_extinction_keeps_a_real_sharp_inner_lip_after_resize_and_reopen`,
|
||||
`pattern_suppress_tests::enclosure_datums_follow_wall_height_and_board_depth_with_material_proofs`,
|
||||
`cmd::plastic::tests::enclosure_snap_fit_follows_resized_front_wall`
|
||||
- `solvecraft-kernel`: `tests::boolean_identity_on_tangent_primitives`
|
||||
- `solvecraft-ui-egui` scenarios: `acceptance_sensor_enclosure`
|
||||
|
||||
To run exactly what a pull request runs: `cargo nextest run --cargo-profile ci --profile ci`;
|
||||
add `--ignore-default-filter` for the full set. A new test that takes over a minute on CI can
|
||||
join the list (the `default-filter` in `.config/nextest.toml`) if it guards robustness rather
|
||||
than everyday behaviour.
|
||||
Reference in new issue
Block a user