name: Maximize runner disk
description: Free up disk space on the github runner
runs:
  using: "composite"
  steps:
    - name: Free up disk space on the github runner
      if: runner.os == 'Linux' && !env.ACT
      shell: bash
      run: |
        # maximize-runner-disk
        # Directories to prune to free up space. Candidates:
        #   1.6G  /usr/share/dotnet
        #   1.1G  /usr/local/lib/android/sdk/platforms
        #   1000M /usr/local/lib/android/sdk/build-tools
        #   8.9G  /usr/local/lib/android/sdk
        # This list can be amended later to change the trade-off between the amount of
        # disk space freed up, and how long it takes to do so (deleting many files is slow).
        prune=(/usr/share/dotnet /usr/local/lib/android/sdk/platforms /usr/local/lib/android/sdk/build-tools)

        if [[ "$UID" -eq 0 && -d /__w ]]; then
          root=/runner-root-volume
          if [[ ! -d "$root" ]]; then
            echo "Unable to maximize disk space, job is running inside a container and $root is not mounted"
            exit 0
          fi
          function sudo() { "$@"; } # we're already root (and sudo is probably unavailable)
        elif [[ "$UID" -ne 0 && "$RUNNER_ENVIRONMENT" == github-hosted ]]; then
          root=
        else
          echo "Unable to maximize disk space, unknown runner environment"
          exit 0
        fi

        echo "Freeing up runner disk space on ${root:-/}"
        function avail() { df -k --output=avail "${root:-/}" | grep '^[0-9]*$'; }
        function now() { date '+%s'; }
        before="$(avail)" start="$(now)"
        for dir in "${prune[@]}"; do
          if [[ -d "${root}${dir}" ]]; then
            echo "- $dir"
            # du -sh -- "${root}${dir}"
            sudo rm -rf -- "${root}${dir}"
          else
            echo "- $dir (not found)"
          fi
        done
        after="$(avail)" end="$(now)"
        echo "Done, freed up $(( (after - before) / 1024 ))M of disk space in $(( end - start )) seconds."
