name: Build Godot
description: Build Godot with the provided options.
inputs:
  target:
    description: The scons target (debug/release_debug/release).
    default: "debug"
  tools:
    description: If tools are to be built.
    default: false
  tests:
    description: If tests are to be built.
    default: false
  platform:
    description: The Godot platform to build.
    required: false
  sconsflags:
    default: ""
  scons-cache:
    description: The scons cache path.
    default: "${{ github.workspace }}/.scons-cache/"
  scons-cache-limit:
    description: The scons cache size limit.
    # actions/cache has 10 GiB limit, and GitHub runners have a 14 GiB disk.
    # Limit to 7 GiB to avoid having the extracted cache fill the disk.
    default: 7168
runs:
  using: "composite"
  steps:
    - name: Scons Build
      shell: sh
      env:
          SCONSFLAGS: ${{ inputs.sconsflags }}
          SCONS_CACHE: ${{ inputs.scons-cache }}
          SCONS_CACHE_LIMIT: ${{ inputs.scons-cache-limit }}
      run: |
        echo "Building with flags:" ${{ env.SCONSFLAGS }}
        if ! ${{ inputs.tools }}; then rm -rf editor; fi  # Ensure we don't include editor code.
        scons p=${{ inputs.platform }} target=${{ inputs.target }} tools=${{ inputs.tools }} tests=${{ inputs.tests }} ${{ env.SCONSFLAGS }}
        ls -l bin/