-
Notifications
You must be signed in to change notification settings - Fork 9.2k
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
WIP: Shorten openpilot CI Setup Time to <40s #31836
Conversation
Thanks for contributing to openpilot! In order for us to review your PR as quickly as possible, check the following:
|
25 seconds to restore apt-packages from cache. Gonna spend some time to see what exactly we don't need from here. run |
I'm still working on this. After some research there really is no way to remove enough dependencies so that it's <20s Caching is an issue due to needing to restore for every runner that's created when it's called. Having the ability to share runners across each job where Which leads to what looks like is the best (and IMO only solution from what I've looked into) for getting it to <20s and that's setting up self-hosted runners with the openpilot image + dependencies. With comma using azure, I'll look into setting up runners that are hosted there. Regular docker containers work also where each container acts as a runner. pinging since bounty hasn't been set to locked @adeebshihadeh |
FYI, if the goal is to get the build time on PRs from forks under these time constraints, github says you should not use self-hosted runners in this scenario: |
My first thought to this is adding in permissions where self-runners are used on PRs from public forks only when approved or some kind of condition is met for contributors (contributors that have a long history in comma.ai repos or organization members) Might be another hoop for maintainers to take in new contributors. @gregjhogan thoughts? Just initial thoughts on how to get <20s possible. |
We do not want to maintain self hosted runners and do not want any more hoops. |
back to the drawing board then. |
Closing this since it's way too complicated. Feel free to open a new one if you come up with something simple |
Yep, working on something right now that's much simpler. I'll make a draft PR soon. |
Fixes #30706
Based off of comments from the issue the best approach is removing dependencies after they're used with the help of poetry