-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Improve CI build and test times #8288
Comments
Is that the documentation check, or doc tests? |
It's the Considering how slow doctests are generally though, an action item here may be to investigate the time of doctests :) |
Related exploration of nextest |
We could consider paying for runners with more CPUs (https://docs.github.com/en/actions/using-github-hosted-runners/about-larger-runners/about-larger-runners) although I would like to chase free options first :) |
I haven't looked at CI and the build in detail, but if any of it is building in release mode with fat LTO enabled, then that is likely taking some sizeable chunk of time. Fat LTO is notorious for being horrendously slow. #8544 switches over to thin LTO. The other thing potentially worth experimenting with is bumping up the In addition to the other ideas mentioned, particularly in the non-cache case, a more involved approach might be to reduce the number of dependencies overall. Ruff has quite a lot of them. However, it's not clear to me how much the non-cache case truly matters. (I imagine most folks are installing Ruff as a wheel of some kind? Apologies for the deployment ignorance here on my part.) |
No worries at all. That's right, the vast majority of downloads are pre-compiled wheels that we upload to PyPI. (These are basically compiled binaries that get wrapped up with some other metadata in a zip archive.) I would say slow release builds are mostly a problem for development (especially profiling). And slow debug builds are definitely a problem for development. |
I believe the most impactful - but also most effort - change would be splitting up the |
Without cache hit source
Compile time for Linux tests 7m 23s
Compile time for Windows tests 8m 56s
Runtime for docs check 2m 33s
With cache hit source
Compile time for Linux tests 3m 13s
Compile time for Windows tests 4m 48s
Runtime for docs check 35s
CI takes an additional 2 minutes to run the tests in both environments
We only check documentation on Linux.
It'd be great if these were faster. I'm not sure it's possible but I'd love to hear ideas.
The text was updated successfully, but these errors were encountered: