db620d33df
CodeQL / Analyze (csharp) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
dotnet-build-and-test / dotnet-test-functions (push) Has been cancelled
dotnet-build-and-test / paths-filter (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Debug, windows-latest, net9.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, ubuntu-latest, net10.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, ubuntu-latest, net8.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, windows-latest, net472) (push) Has been cancelled
dotnet-build-and-test / dotnet-test (Release, integration, true, ubuntu-latest, net10.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-test (Release, integration, true, windows-latest, net472) (push) Has been cancelled
dotnet-build-and-test / dotnet-foundry-hosted-it (push) Has been cancelled
dotnet-build-and-test / dotnet-build-and-test-check (push) Has been cancelled
dotnet-build-and-test / Integration Test Report (push) Has been cancelled
65 lines
2.2 KiB
YAML
65 lines
2.2 KiB
YAML
name: Free runner disk space
|
|
description: |
|
|
Reclaims disk space on GitHub-hosted Ubuntu runners by removing
|
|
pre-installed toolchains we do not use (Android SDK, GHC/Haskell,
|
|
CodeQL bundle), Docker images, and swap. Also relocates the
|
|
NuGet package cache to /mnt (which has ~75 GB free vs ~14 GB
|
|
on /). No-op on non-Linux runners.
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Free disk space (Linux only)
|
|
if: runner.os == 'Linux'
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
echo "::group::Disk usage before cleanup"
|
|
df -h /
|
|
echo "::endgroup::"
|
|
|
|
# Remove pre-installed toolchains we never use on this repo's
|
|
# dotnet/python jobs. These reclaim ~25-30 GB on ubuntu-latest.
|
|
sudo rm -rf \
|
|
/usr/local/lib/android \
|
|
/usr/share/dotnet/sdk/NuGetFallbackFolder \
|
|
/opt/ghc \
|
|
/usr/local/.ghcup \
|
|
/opt/hostedtoolcache/CodeQL \
|
|
/opt/hostedtoolcache/PyPy \
|
|
/opt/hostedtoolcache/Ruby \
|
|
/opt/hostedtoolcache/go \
|
|
/usr/local/share/boost \
|
|
/usr/local/share/powershell \
|
|
/usr/local/share/chromium \
|
|
/usr/local/share/vcpkg \
|
|
/usr/local/lib/heroku \
|
|
"${AGENT_TOOLSDIRECTORY:-/opt/hostedtoolcache}/PyPy" \
|
|
"${AGENT_TOOLSDIRECTORY:-/opt/hostedtoolcache}/Ruby" \
|
|
"${AGENT_TOOLSDIRECTORY:-/opt/hostedtoolcache}/go" || true
|
|
|
|
# Drop docker images shipped on the runner; jobs that need
|
|
# docker pull what they need fresh.
|
|
if command -v docker >/dev/null 2>&1; then
|
|
sudo docker image prune --all --force >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
# Disable swap to free its backing file.
|
|
sudo swapoff -a || true
|
|
sudo rm -f /mnt/swapfile /swapfile || true
|
|
|
|
echo "::group::Disk usage after cleanup"
|
|
df -h /
|
|
echo "::endgroup::"
|
|
|
|
- name: Relocate NuGet package cache to /mnt (Linux only)
|
|
if: runner.os == 'Linux'
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
sudo mkdir -p /mnt/nuget
|
|
sudo chown -R "$USER":"$USER" /mnt/nuget
|
|
echo "NUGET_PACKAGES=/mnt/nuget" >> "$GITHUB_ENV"
|
|
echo "Relocated NuGet package cache to /mnt/nuget"
|
|
df -h /mnt || true
|