-
Notifications
You must be signed in to change notification settings - Fork 246
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
Use self-hosted org runners to speed up CI #3065
Comments
So, the runners are (at least the macos one) zippy, but:
We can probably improve CI times if we didn't do every single job on separate runners, but instead tried to parallelize the tasks on the same runner. We could probably easily build 2 or 3 chips on the macos runner alone, in the same time it takes to build one. We are building each and every example for every PR. We are testing all test cases on every PR, which is a waste of time. If a PR doesn't generate a different binary for a test than something that already passed, it shouldn't be run. I don't know how we should approach the bookkeeping here, though, but the HIL test runtime can only be optimized so much, and we'll just have more and more tests. We should also look into running less checks on a PR push, and doing a more comprehensive set of checks in the merge queue. We should probably run HIL tests on PR update, with a bit more strict checking against warnings to catch the low hanging fruit, but we can leave linting and documentation builds to the MQ. We can also probably just replace the MSRV checks by building the HIL tests with the MSRV compilers. |
Maybe we can just drop in rayon here where we iterate the examples for a quick win 🤔.
Do you know if the order of specifying
Can we cache this some how? I'm not sure if downloading from github runner cache or github cdn will make any difference, but might be work exploring. |
The self-hosted runners don't start from 0 every time. The work folder isn't cleared, the OS isn't set up from 0, there is a lot of state retained between runs. On GHA we can probably include the toolchain folder in the cache, but we'd run out of cache space. We have 10.02/10.00 GB currently used without that 🤣
I'm more thinking about cargo-batch. The annoying part is always build logs, just shoving those into a single stream will be unreadable.
We can specify a number of tags, and the runners that matches ALL of them will run the job. I don't know if we have common tags between a GHA runner and a self-hosted one, but generally selecting a runner isn't very convenient. |
I think we changed from check to build before we had hil-tests built - I agree we should catch most linker errors via the hil-tests. Additionally, we could do the |
Actually, a comment on https://stackoverflow.com/questions/77997951/can-i-specify-github-actions-runs-on-as-either-one-label-or-another-or-logic-in proposes a cheeky way to pick either self-hosted or gh-hosted runners: just label self-hosted runners with Also I just realized we have 7 VMs in addition to the 3 self-hosted machines. |
We should be able to add the following runner names to the CI workflow:
See the github documentation
The text was updated successfully, but these errors were encountered: