-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Rust]: Setup CI steps #3035
[Rust]: Setup CI steps #3035
Conversation
* Fix `Gather and check Rust code coverage` step
* Set coverage.stats to 90 for tests
* Remove Uploading to CodeCov step
4056ce7
to
42db043
Compare
* Use `Swatinem/rust-cache@v2` * Remove internal dependencies
Test coverage requires It takes about 12 minutes to install all of the packages and tools, so I decided to cache the entire |
* Return missing lines * Add no-fail-fast for tests
@Milerius @hewigovens could you please take a look at this PR? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Non-blocker comments, approved - I'm ok to have a separate CI for Rust, will facilitate the transition.
Looks good to me, can we cache for other pipelines as well? |
I haven't checked if the sccache may improve the performance significantly for other pipelines.
|
Description
As we want to write more rust, we will have to ensure the robustness of our implementations. to do this we need cargo caching, run the rust unit tests and display them on the CI, the clippy checks and finally the coverage check.
Checklist
TODO
aarch64-apple-darwin
x86_64-apple-darwin
for iOS CI only.rust/target
between each branch to improve compilation time. We can schedule a clean build every night to recompile therust/target
cache.Notes
Test coverage requires
cargo-llvm-cov
package (thereforellvm-tools-preview
rustup tool) and nightly toolchain.Test CI report requires
nextest
package.We also use
udeps
clippy
andrustfmt
on nightly.There should a possibility to cache the entire ~/.cargo directory to avoid recompilation each time.
For now, I use
sccache
to cache some crates.