SafeDisk AI

GitHub Actions Runner No Space Left On Device

Get a free runner storage preview first: largest buckets, a safe starter cleanup YAML, and the review-first paths that should not be deleted blindly. If the failure still needs judgment, send one email for a scope check and receive the $29 CI report link only when paid review is useful.

Use free YAML first

We reply with one free next step, one clarification, or the $29 payment link only if the starter YAML is not enough.

Free scope check

Send one email. Pay only if the runner still needs judgment.

Use this when the runner still fails after obvious cleanup, or when Docker, tool cache, workspace, Nix/Cargo output, or `_diag` logs need a safe order. No card, no secrets, and no full log upload here.

$0Starter YAML and sample preview stay free.
$29Only when the cleanup boundary needs judgment.
No resetReview volumes, caches, and logs before deleting.
Free first fix

Try the safe starter cleanup before paying.

Copy the YAML below first. It only removes rebuildable temp/build cache on disposable runners and leaves volumes, tool caches, workspaces, simulator runtimes, and diagnostic logs alone. If the job still fails, use the $29 triage form with the before/after disk output.

Copy free YAML Still fails? Free scope check
Free cleanup starter

Copy the disposable-runner cleanup YAML first.

This starter only targets rebuildable CI state on GitHub-hosted or disposable runners: temp files, package temp caches, DerivedData, SwiftPM/CocoaPods caches, and Docker build cache. It avoids volumes, archives, tool caches, workspaces, simulator runtimes, and `_diag` logs.

Safe firstRebuildable cache and temp cleanup.
Review firstVolumes, tool caches, runtimes, and logs stay untouched.
$29Use triage if the runner still fails after the starter layer.
- name: SafeDisk starter cleanup
  if: always()
  shell: bash
  run: |
    set -euo pipefail
    echo "Before cleanup"
    df -h
    rm -rf "${RUNNER_TEMP:-/tmp}"/* 2>/dev/null || true
    rm -rf ~/.npm/_cacache/tmp 2>/dev/null || true
    rm -rf ~/.cache/pip 2>/dev/null || true
    if [ "${RUNNER_OS:-}" = "macOS" ]; then
      rm -rf ~/Library/Developer/Xcode/DerivedData/* 2>/dev/null || true
      rm -rf ~/Library/Caches/org.swift.swiftpm/* 2>/dev/null || true
      rm -rf ~/Library/Caches/CocoaPods/* 2>/dev/null || true
    fi
    docker builder prune -af 2>/dev/null || true
    echo "After cleanup"
    df -h
Still fails? Free scope check

For persistent self-hosted runners, review tool caches, Docker volumes, and workspace retention before using any cleanup step.

Fastest first pass

Use the free layer for the obvious cleanup, then pay only for judgment.

Start with the read-only scan or the sample preview. The page gives a starter YAML for safer cleanup. If review-first buckets remain, send the artifact for the $29 incident triage and get the exact cleanup boundary for Docker cache, runner workspaces, tool caches, Xcode runtimes, or `_diag` logs.

1Run the read-only Action near the failing step.
2Preview safe, review-first, and do-not-touch buckets locally.
3Request the $29 review only if the policy is not obvious.
Email free CI scope check Request free private check Check if team policy fits Preview team policy Open full team request form View sample scan

No mail app or GitHub login? Send this directly from any inbox.

liuminsheng3@gmail.com - SafeDisk free CI scope check

Prefer private email over a public GitHub issue? Start with the free scope check. We send the $29 triage or $99 team policy link only if the evidence fits.

No secrets or full logs. Add the scan artifact later if useful. If the issue repeats across runners, we can send the private $99 team policy path after the free check.

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
Free first-pass triage

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.

Request free CI check Check team policy fit

No secrets, private build logs, or full artifacts needed for the first pass.

CI team pilot

Check whether this needs a $99 team policy.

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.

GitHub free scope check

No file contents, repository secrets, or production runner access required.

What the scan checks

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.