diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index cea451a..445e957 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -10,6 +10,36 @@ jobs: runs-on: self-hosted steps: + - name: Free disk space + run: | + set +e + echo "=== Disk before cleanup ===" + df -h + # Stale act runner workspaces from previous jobs (older than 60 min). + if [ -d "$HOME/.cache/act" ]; then + du -sh "$HOME/.cache/act" 2>/dev/null + find "$HOME/.cache/act" -mindepth 1 -maxdepth 1 -type d -mmin +60 -exec rm -rf {} + 2>/dev/null + fi + # Stale runner workspaces under common locations. + for dir in "$HOME/actions-runner/_work" "$HOME/.cache/setup-node" "$HOME/.npm/_cacache"; do + if [ -d "$dir" ]; then + find "$dir" -mindepth 1 -maxdepth 2 -mmin +1440 -exec rm -rf {} + 2>/dev/null + fi + done + # Docker leftovers if docker is available. + if command -v docker >/dev/null 2>&1; then + docker image prune -af --filter "until=24h" 2>/dev/null + docker container prune -f --filter "until=24h" 2>/dev/null + docker builder prune -af --filter "until=24h" 2>/dev/null + fi + # Stale /tmp files older than 2h, keep currently-running runner files. + find /tmp -mindepth 1 -maxdepth 1 -mmin +120 \ + -not -name 'runner*' -not -name 'act*' \ + -exec rm -rf {} + 2>/dev/null + echo "=== Disk after cleanup ===" + df -h + exit 0 + - name: Checkout code uses: actions/checkout@v4