GitHub Actions Runner No Space Left On Device
Use a read-only CI scan to find the actual storage pressure before deleting Docker state, runner workspaces, tool caches, Xcode runtimes, or build artifacts. SafeDisk CI Storage Scan supports GitHub-hosted Linux and macOS jobs plus self-hosted runners.
No mail app or GitHub login? Send this directly from any inbox.
liuminsheng3@gmail.com - SafeDisk CI Runner Storage Pilot Invoice
Send the failing runner symptom. Get the next safe disk check.
Work email is enough. We reply with the lowest-risk read-only check before you delete Docker cache, runner workspaces, tool caches, Xcode runtimes, or `_diag` logs.
No mail app or GitHub login? Send this directly from any inbox.
liuminsheng3@gmail.com - SafeDisk CI Runner Storage Pilot Invoice
Prefer private billing over a public GitHub issue? Use the private invoice button first. Public issue billing stays optional.
Run the read-only Action
Add this step near the failing build on `ubuntu-latest`, `macos-latest`, or a self-hosted Linux/macOS runner. It prints disk, inode, Docker, workspace, cache, and Xcode metadata only, uploads a scan artifact, and does not delete runner files.
- name: SafeDisk CI storage scan
if: always()
uses: liuminsheng3/safedisk-ci-scan-action@v1
Get the safest next CI disk check by email.
Email is enough for the first pass. Add the runner OS or failing command only if you have it handy; we reply with the next read-only check or the safest cleanup boundary.
Get a safe/review/do-not-touch cleanup policy for $99.
Use this when a workflow fails with ENOSPC, Docker builds fill the runner, a self-hosted runner keeps growing, or team members disagree about what can be deleted safely.
What the scan checks
- Runner disk overview, workspace, temp, tool cache, current job paths, and runner image metadata.
- Linux runner pressure points: `/home/runner/actions-runner`, `_work`, `_diag`, `_tool`, `/tmp`, `/var/lib/docker`, and Docker build cache.
- macOS runner pressure points: Xcode, DerivedData, Archives, CoreSimulator, SwiftPM, CocoaPods, Homebrew, npm, pnpm, and Gradle caches.
- Large workspace files and common build outputs that grow silently across repeated CI jobs.
How to interpret no-space failures
A CI runner can be out of usable space even when the root cause is not obvious from the failing command. `no space left on device` can be triggered by Docker overlay growth, a build cache, a test artifact directory, `/tmp`, Xcode simulator runtimes, or a self-hosted runner that never rotates old workspaces.
Usually safe to automate
- Per-job temp files after the job finishes.
- Known rebuildable package caches with a size cap.
- Old workflow artifacts copied into runner-local scratch paths.
Review before deleting
- Docker images, build cache, and volumes used by later jobs.
- Shared tool caches on self-hosted runners.
- Xcode runtimes, SDKs, and simulator state required by pinned builds.
Do not touch blindly
- Runner registration, service files, credentials, and `_diag` logs needed for incident review.
- Persistent Docker volumes that may contain databases or test fixtures.
- Team-specific build outputs that are reused outside the current job.
Local CI preview
Preview the runner policy before sending anything.
Upload or paste the generated CI scan. The preview runs in your browser and stores the scan only for checkout prefill.
Upload or paste a SafeDisk CI scan to preview the runner cleanup policy.
Close the incident with a policy
The paid pilot turns one representative scan into a cleanup policy your team can review, automate, and reuse instead of debating every disk-full incident from scratch.