Repository navigation
Conversation
Out-of-disk crashes caused 63 of the last 126 failed jobs. Nearly all died in "Restore pool build" (about 8 GB compressed) in jobs without the disk cleanup step; 54 were the Proof Profile measure and absolute jobs. - Move the cleanup into a shared composite action and use it in the seven jobs that carried inline copies. - Add the cleanup to both Proof Profile jobs. They check out the PR head, which may predate the shared action, so they keep an exact inline copy. - Add a Workflow Lint job (lean_pool.workflow_disk) that fails when a job restores the pool build cache before freeing disk, or when an inline copy drifts from the shared action. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Proof profile (new / modified Lean files)No added or modified Lean files under Advisory only — never blocks merge. |
|
Advisory cross-file review against Lean Pool's supervisory rubric. This is not by itself a significance, source-verification, or merge verdict. [Medium impact] The PR appears safe to merge; all previous findings are addressed and no new blocking issue was found. SummaryThe PR shares runner disk cleanup across build workflows, adds cleanup to Proof Profile, and adds a workflow check for cleanup before pool-build restores.
Reviews (2) · Last reviewed commit: "Close three gaps in the pool-restore dis..." · Reviewed by Greptile |
- A conditional cleanup only covers a restore with the same condition. - Restores through a LeanPoolBuild- fallback in restore-keys count. - actions/cache/save steps are exempt, since they download nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Why
Out-of-disk crashes (
System.IO.IOException: No space left on device) caused 63 of the last 126 failed jobs, mostly since Nov 4. Nearly all of them died in "Restore pool build": the whole-pool build cache is now ~7.5 GB compressed, and together with the 3 GB dependency cache it overflows a runner's default free space. Jobs with the "Free runner disk space" step (111 GB free afterwards) stopped crashing; the jobs without it kept dying.The step was added one workflow at a time as each started failing, so the profiler never got it.
What
.github/actions/free-disk-space, replacing the 7 inline copies in Lean Action CI, docs-build, docs-publish, and Exposition Verify.measureandabsolutenow free disk before restoring. These jobs check out the PR head, which may predate the shared action, so they keep an exact inline copy instead ofuses: ./….python -m lean_pool.workflow_disk): fails when a job restores aLeanPoolBuild-cache (excludinglookup-only) before freeing disk, or when an inline copy drifts from the shared action. Dependency-only restores are exempt, since they never crashed.Testing
pytest tests/test_workflow_disk.py: 6 tests, including a check that the real workflows pass.mainreports exactly the two Proof Profile jobs.actionlintis clean on all workflows.test_notice.py::test_repository_notice_is_currentand 3test_stitched_logs_cannot_forge_later_file_headerscases also fail on unmodifiedmain, so they're unrelated.🤖 Generated with Claude Code