-
-
Notifications
You must be signed in to change notification settings - Fork 411
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
[Merged by Bors] - Cleanup and speed-up CI #2376
Conversation
Test262 conformance changes
|
Codecov Report
@@ Coverage Diff @@
## main #2376 +/- ##
==========================================
- Coverage 40.03% 39.89% -0.14%
==========================================
Files 304 304
Lines 23401 23332 -69
==========================================
- Hits 9368 9308 -60
+ Misses 14033 14024 -9
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
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.
Looks good, just a small comment typo :)
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.
Thanks for the enhancement!
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.
Looks good!
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Ah, you forgot to change the |
Yeah, I still want to modify the bors action, I'll get to it today. |
This introduces multiple changes to our CI setup - Switch cache action to rust-cache, this handles which directories to cache for us - Switch to the nextest[2] test runner for Windows and MacOS - Join the smaller jobs into one bigger misc job that handles clippy, rustfmt, documentation and examples. This should still be faster than the linux job and should save some resources overall [1] - https://github.com/Swatinem/rust-cache [2] - https://nexte.st/
tarpaulin is very slow already, this should balance things out
This will make them have separate cache keys, meaning they don't share their target directory and each one stores and loads a smaller archive from the cache.
Simplified the name of the jobs in rust.yml Removed bors.yml, it was just copying rust.yml, instead this adds the staging and trying branches to the list of branches where the ci should run
bors r+ |
Currently we run 7 different jobs: - tests linux - tests macos - tests windows - rustfmt - clippy - examples - documentation With this change I reduced them to 4 and hopefully sped them up. The total execution time is limited by the tests, especially linux that calculates coverage. Having separate jobs for clippy and rustfmt (which take a very small amount of time) is a waste of energy. With this PR: Introduced a new cargo profile, `ci`, that should create smaller sized binaries and reduce the our cache usage. I changed the test runner for macos and windows to [nextest](https://nexte.st/), which should be faster and is specifically designed for CI. I merged all smaller tasks in a single job, misc, the steps clearly identify what is being tested so it shouldn't affect clarity. Switched to using the [rust-cache](https://github.com/Swatinem/rust-cache) GH action, this simplifies our work by no longer having to worry about which directories to cache, rust-cache handles all that for us. ~~The bors task should also be modified, I'll get to it as soon as I have time. I believe it should be possible for us to have a single workflow described and have it both be the normal CI and the bors test.~~
Pull request successfully merged into main. Build succeeded: |
Currently we run 7 different jobs:
With this change I reduced them to 4 and hopefully sped them up.
The total execution time is limited by the tests, especially linux that calculates coverage. Having separate jobs for clippy and rustfmt (which take a very small amount of time) is a waste of energy.
With this PR:
Introduced a new cargo profile,
ci
, that should create smaller sized binaries and reduce the our cache usage.I changed the test runner for macos and windows to nextest, which should be faster and is specifically designed for CI.
I merged all smaller tasks in a single job, misc, the steps clearly identify what is being tested so it shouldn't affect clarity.
Switched to using the rust-cache GH action, this simplifies our work by no longer having to worry about which directories to cache, rust-cache handles all that for us.
The bors task should also be modified, I'll get to it as soon as I have time. I believe it should be possible for us to have a single workflow described and have it both be the normal CI and the bors test.