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: ${{ !env.ACT }}
      shell: bash
      run: |
        # maximize-runner-disk
        if [[ "$RUNNER_OS" == Linux ]]; then
          # 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."
        fi
