Free runner disk space before building wheels - #152
Merged
Conversation
The cibuildwheel container shares the runner's 72G root filesystem, and the Rust target dir, the in-container rustup toolchains, and the manylinux image together exhaust it before the wheel test install runs. Dropping the unused Android/dotnet/GHC/Swift toolchains takes free space from 7G to 30G. Verified on 1kbgz/crowdsource-admin, which was failing with 'OSError: [Errno 28] No space left on device'. Signed-off-by: Tim Paine <3105306+timkpaine@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The cibuildwheel container shares the runner's 72G root filesystem with the
host, and the Linux dist step exhausts it before the wheel test install runs:
Measured on a failing job, at the point the container starts testing:
/Make distThe container's
overlayand the host's/dev/rootare the same filesystem.What consumes the remaining headroom:
/project/target— 4.2G, the bind-mounted workspace Rust target dir, alreadypopulated by the earlier
make build/make coveragesteps/root/.rustup756M +/root/.cargo129M, frombefore-allinstalling theaarch64andx86_64toolchains inside the container/var/lib/docker4.0K to 2.1G just pulling the manylinux imageDropping the Android/dotnet/GHC/Swift toolchains, none of which these builds
use, takes free space from 7.2G to 30G.
/opt/hostedtoolcacheis deliberatelyleft alone since setup-python's interpreter lives there.
Verified on 1kbgz/crowdsource-admin, which was failing reproducibly: free space
went 7.2G to 30G and
Testing wheel...now completes instead of dying.Applied to the
rustandrustjswasmvariants only.cppandcppjswasmhave the same dist step shape, but the three consumers above are Rust-specific,
so I did not want to ship an unvalidated change to variants that may not have
the problem.
Worth noting separately:
test-extras = "develop"installs the entire devtoolchain (uv, ty, ruff, cibuildwheel, twine, bump-my-version, ...) into the
container to run the test suite. That is what pushes disk over the edge, so
narrowing it to a test-only extra would address the cause rather than buy
headroom.