ci(test): free runner disk space before the unit-test build (fixes ENOSPC on main)#6089
Merged
Conversation
The `Test / Unit (lib+bin)` job's full-run path runs `cargo nextest run --workspace -E 'kind(lib) | kind(bin)'`, which debug-compiles every lib+bin target in the workspace — including librefang-desktop's large static archive — on an ubuntu-latest runner that leaves only ~14 GB free. The build overruns the disk and the link step dies with "No space left on device" (`rustc-LLVM ERROR: IO failure on output stream`), failing the job before a single test runs. Add a Free-runner-disk-space step (after checkout) that removes preinstalled toolchains this job never uses — dotnet, Android SDK, GHC, CodeQL, docker images — reclaiming ~25 GB. This mirrors the fix the nix-build job received in #6081; that PR only touched nix-build.yml, leaving the Unit job exposed. Verified: ci.yml still parses as valid YAML.
houko
enabled auto-merge (squash)
June 11, 2026 13:29
The comment block added in this PR was hard-wrapped at ~72 characters, splitting sentences across lines. CLAUDE.md requires prose line breaks only at sentence boundaries.
This was referenced Jun 11, 2026
houko
added a commit
that referenced
this pull request
Jun 15, 2026
…fixes ENOSPC on main) (#6112) * ci(test): free runner disk space before the integration shard build (fixes ENOSPC on main) The `Test / Ubuntu (shard N/4)` job's full-run path runs `cargo test --workspace --no-run`, which debug-compiles every workspace test binary — each `tests/*.rs` is its own executable, plus dev-dependencies and librefang-desktop's large static archive — on an ubuntu-latest runner that leaves only ~14 GB free. All four full-run shards do this same heavy build, so the disk sits at the margin: shard 1/4 overran it on main and the runner died with "No space left on device" mid-build, before any test ran. Add a Free-runner-disk-space step (gated on the same selective-lane skip as the rest of the job) that removes preinstalled toolchains this job never uses — dotnet, Android SDK, GHC, CodeQL, docker images — reclaiming ~25 GB. This extends the same fix the unit-test job got in #6089 and nix-build got in #6081 to the integration shard lane, the last full-workspace Ubuntu build still exposed. Verified: ci.yml still parses as valid YAML. * ci(test): trim integration-shard disk-free comment to one line Two-line comment block condensed to one short line per project style rules. The PR body carries the full context; inline comments reference only the non-obvious constraint (disk headroom). --------- Co-authored-by: Evan <[email protected]> Co-authored-by: Claude <[email protected]>
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.
Problem
Test / Unit (lib+bin)failed on the push-to-main run after #6083 merged — not a test failure, a disk-full failure:The job's full-run path is
cargo nextest run --workspace -E 'kind(lib) | kind(bin)', which debug-compiles every lib+bin target in the workspace (includinglibrefang-desktop's large static archive).ubuntu-latestleaves only ~14 GB free, the build overruns it, and the linker dies before any test runs.The job had no disk-cleanup step.
#6081 already added exactly this cleanup to the nix-build job, but it only touched
nix-build.yml— the Unit job stayed exposed and is the one that just took down main.Fix
Add a
Free runner disk spacestep (right after checkout) to the Unit job, identical to #6081's: delete preinstalled toolchains the job never uses (dotnet, Android SDK, GHC, CodeQL, docker images), reclaiming ~25 GB before the build, and printdf -h /before and after so the reclaimed space shows in the log.Scope / notes
Verification
ci.ymlstill parses as valid YAML (python -c "import yaml; yaml.safe_load(...)").nix-build.yml(ci(nix-build): librefang-cli job repeatedly fails with 'Nix daemon disconnected unexpectedly' (runner disk exhaustion) #6081), which has been exercising it on the same runner image.