chore: try switching to cargo nextest
to speed up CI builds
#3323
+9
−4
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.
I started looking at https://nexte.st/ because I was interested in a test harness that lets a test dynamically declare itself "skipped," which would be a nice alternative to this pattern:
codex/codex-rs/core/tests/suite/cli_stream.rs
Lines 22 to 27 in 4c46490
ChatGPT pointed me at https://nexte.st/, which also claims to be "up to 3x as fast as cargo test." Locally, in
codex-rs
, I seecargo nextest run
finishes in 19scargo test
finishes in 37sThough looking at CI, the wins are quite as big, presumably because my laptop has more cores than our GitHub runners (which is a separate issue...). Comparing the CI jobs from this PR with that of a recent open PR:
cargo test
cargo nextest
macos-14 - aarch64-apple-darwin
macos-14 - aarch64-apple-darwin
ubuntu-24.04 - x86_64-unknown-linux-musl
ubuntu-24.04-arm - aarch64-unknown-linux-musl
windows-latest - x86_64-pc-windows-msvc
windows-11-arm - aarch64-pc-windows-msvc
I thought that, to start, we would only make this change in CI before declaring it the "official" way for the team to run the test suite.
Though unfortunately, I do not believe that
cargo nextest
actually supports a dynamic skip feature, so I guess I'll have to keep looking? Some related discussions: