-
Notifications
You must be signed in to change notification settings - Fork 809
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
feat: move to cargo-xwin for clippy #3600
Conversation
FYI, consider install |
Would cargo-binstall work or no? |
probably works, I never tried. |
BTW, I think you forgot to use a Linux runner? otherwise using |
Indeed, was trying to gather some baseline data on windows first 😅; numbers don't look too promising thus far. |
CodSpeed Performance ReportMerging #3600 will not alter performanceComparing Summary
|
The clippy step is 12:30min while clippy itself takes 30s, do you know where the other 12min are? The xwin download and unpack are <2min on my machine. |
Probably because the network connection from GH action to Windows SDK download isn't very good, cached version is much better. |
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.
Clippy itself takes 30s, the whole job 1:30min, great work!
😅 need to add up the totals numbers and make a table, will do later today to get better comparison. At a glance on an unchached run it's marginally worse by a quite the factor (2m-3m before vs 15 min now) ~ . TL;DR Seems when cache is busted the impact is much worse than it is now and we're not gaining on job total speeds. (will also explore some other fine tuning later like separating the windows sdk cache out) |
Would moving the xwin cache into a separate cache step only keyed on |
You read my mind 😆 |
We do frequently fill our cache, we'll want to be careful that it's not evicted often due to space limitations. |
fb0b486
to
fc2a7f0
Compare
Here's some of the initial numbers to compare I've grabbing from all the past runs.
It seems clippy xwin runs about the same speed as windows currently (post the ReFS move). The job totals are aligned on best scenarios. The xwin cache made the biggest difference for cargo xwin, making it run consistently with current windows runner, but it introduces a bigger risk when that cache gets busted. The 15 minute hit will be most noticeable on downstream forks (where there is no cache often) or when cache is lost in main after rust toolchain upgrades or cache eviction. |
Personally, i think this still is a noticeable improvement, it means we skip the virtual disk setup and have a windows runner less; the 15min cache priming about every 6 weeks are acceptable. |
.github/workflows/ci.yml
Outdated
uses: actions/cache@v4 | ||
with: | ||
path: "${{ github.workspace}}/.xwin" | ||
key: cargo-xwin-${{ hashFiles('rust-toolchain.toml') }} |
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.
I don't think xwin cache needs to be keyed by Rust version, it's just an unpacked Windows SDK, no Rust involved.
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, moved cache key to be just cargo-xwin
d87b1f9
to
bb50f53
Compare
bb50f53
to
aa61db7
Compare
Sounds good, PR is good to go now. Apologies, I thought I had this PR was in draft all this time 😅 |
Summary
Move to cargo-xwin for clippy
Closes #3507