-
Notifications
You must be signed in to change notification settings - Fork 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: use buildjet for process replay #29277
Conversation
@jnewb1 can you finish this up and evaluate how much faster it is? |
ignoring setup time:
Perhaps if we split the unit tests across the 4 or 8 cpus it would be significantly faster for the unittests: Seems worth it to put the replay test on buildjet at least |
|
added to table, about 6 mins compared to 11 for 8vcpu |
My verdict would be:
TODO:
|
Sounds good; goal is comfortably under 10mins for time-to-green-check on the average commit. |
f4ffa27
to
8f61041
Compare
Buildjet running on my fork, <6 mins for car and replay tests Car tests are only like a minute of actual runtime on the 8cpu buildjet, maybe we combine them when running on buildjet, and instead split up the unittests? |
@adeebshihadeh |
buildjet has a concurrency limit of 64 cpus, meaning only 8 jobs could run at once. We can also pay 300$ per month to increase that to 164 we might want to run the car tests on 4cpu instead of 8, 8 might be overkill since 2/3 of the time is in setup |
From what I understand, process replay is still the only job that clearly needs a faster machine. The cars tests take ~7m on master, and I suspect you might even get a furhter speedup by using 3 or 4 jobs on the GitHub runners. As for the unit tests, it's not clear where all that time is going. |
right, but we could combine the car tests into maybe 1 or 2 steps if we use buildjet. Tried using 4 jobs for the car tests on github actions and it was about the same on average. |
Why would we want to do that? We want to use BuildJet as little as possible: it costs us money and it diverges our CI from external contributors'. |
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.
If this is ready, let's merge for process replay.
.github/workflows/setup/action.yaml
Outdated
@@ -44,6 +49,12 @@ runs: | |||
run: | | |||
find . -type f -executable -not -perm 755 -exec chmod 755 {} \; | |||
find . -type f -not -executable -not -perm 644 -exec chmod 644 {} \; | |||
- id: setup-buildx-action | |||
if: ${{ inputs.is_buildjet == 'true' }} |
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.
why can't we detect this in the setup action?
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.
done
"Post Cache test routes" has a bunch of permission issues. Is that a problem? Also seems like it didn't find the cache for some reason? |
issue on master: #29636 |
runs-on
supports expressions, so we can just fallback to the normal GitHub runners