-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
CI: switch 7 linux jobs to free runners #132409
Conversation
rustbot has assigned @Mark-Simulacrum. Use |
@bors try |
…r=<try> CI: remove linux 4 core large runner try-job: mingw-check try-job: dist-loongarch64-musl
☀️ Try build successful - checks-actions |
@Kobzol the build succeded so probably we can remove some large runners 👍 What do you think about my previous message:
Should we keep the distinction between I lean towards the second option to simplify the CI, but I'm curious about your opinion 👍 |
I took a look at the disk cleaning timing and it is sometimes weirdly slow. On auto - dist-armv7-linux, it takes 20s, but on auto - dist-armhf-linux it takes more than 3 minutes?! What the heck. I think that with |
we are only doing this for the free ubuntu runner, right? 🤔 Anyway next week I can test the try job for all the jobs involved just to make sure that |
Currently, we free disk for all Ubuntu runners. I was expecting that this PR would only do that for the free runners, but it looks like it currently also cleans the disk for the large runner. I suppose that you somehow combined the disk space removal + some experiment to see if we can switch from large to free runners on some jobs? (My previous experiments did not hint at this, the jobs that switched to the largedisk runner were quite close to the threshold, and I don't think that |
My understanding is that this PR only clears the disk of free runners (as I switched
Yes, I switched some large runners to free runners and cleared more space. However, before running bors try and marking this PR as ready, I wanted to ask you if you think the complexity of having both I hope I'm explaining myself. If this seems difficult to understand I'm available to do a quick sync chat. 👍 |
Ah-ha, that's the critical piece of context that I missed, now it makes sense. Yeah, I'm pretty sure that this won't work, clearing the large packages isn't enough to make all the jobs that require more disk work (or it would be borderline on the edge). |
Do you think we could move it to free runners? |
Right, so to clarify, some of them might work, but I don't expect that all of them will work, so I think that we still need to keep the 4-core large runners around. But it doesn't hurt to try, of course, I might be wrong. It's true that I probably did not attempt to run all the jobs with 5 GiB left after CI runs seems fine, so we could move this one. We should evaluate the time needed to run the disk cleanup action though. Right now, without cleaning the large packages, it seems to take from ~20s to ~4 minutes, depending on the job (which is a bit weird, but it is what it is). We should evaluate the longest time this takes with large packages. In a way, we don't need to care, because time on the free runners is... free :) But we should be aware of it, to make sure that it's not increasing the bottleneck of our CI's longest jobs. Also, your boolean is a good idea for another reason - we should only do the cleanup on the free runners, not on the large (8core+ ones). Especially since it seems that my initial assumption that the cleanup only takes a few seconds (with |
@bors try |
…r=<try> CI: remove linux 4 core large runner try-job: mingw-check
Ok, then I will:
After that, I'll mark this PR as ready for review 👍 |
💔 Test failed - checks-actions |
Oh, I think I remember now why I removed |
@bors try |
…r=<try> CI: remove linux 4 core large runner try-job: x86_64-gnu-aux try-job: x86_64-gnu-nopt try-job: x86_64-gnu-tools
Sorry for the offtopic but out of curiosity how many free runners are assigned to Rust? |
r? @Kobzol |
☀️ Try build successful - checks-actions |
@rustbot ready |
Thank you! @bors r+ |
GitHub generously offers us the Enterprise plan, so we have 500 concurrent free runners 🚀 |
looking at diff, not 4? |
4be804e
to
02b3415
Compare
Thanks! I changed the PR title and force pushed for a clean commit history 👍 |
need r- r+ again, so it won't picked for merge now. |
@bors r+ |
…iaskrgr Rollup of 8 pull requests Successful merges: - rust-lang#132259 (rustc_codegen_llvm: Add a new 'pc' option to branch-protection) - rust-lang#132409 (CI: switch 7 linux jobs to free runners) - rust-lang#132498 (Suggest fixing typos and let bindings at the same time) - rust-lang#132524 (chore(style): sync submodule exclusion list between tidy and rustfmt) - rust-lang#132567 (Properly suggest `E::assoc` when we encounter `E::Variant::assoc`) - rust-lang#132571 (add const_eval_select macro to reduce redundancy) - rust-lang#132637 (Do not filter empty lint passes & re-do CTFE pass) - rust-lang#132642 (Add documentation on `ast::Attribute`) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#132409 - MarcoIeni:ci-remove-linux-4c-large, r=Kobzol CI: switch 7 linux jobs to free runners try-job: x86_64-gnu-aux try-job: x86_64-gnu-nopt try-job: x86_64-gnu-tools
ubuntu-20.04-4core-16gb
is a large runner and we only use it because of it's larger disk space.Let's see if we can remove it by cleaning more disk space.
Additionally, at the moment every ubuntu image runs the
jlumbroso/free-disk-space
action. This is a waste of time for large runners that don't need to clean space. This PR changes this behavior to only run this action on free runners which don't have enough space to run the CI.Jobs to test
Jobs that have the 4 core large runner on `master` (to test to check if we can move them to free runners):Jobs that have the free runner on
master
(to test to check if cleaning large packages takes too much time):try-job: x86_64-gnu-aux
try-job: x86_64-gnu-nopt
try-job: x86_64-gnu-tools