godot/.github/actions/godot-build/action.yml

name: Build Godot
description: Build Godot with the provided options.

inputs:
  target:
    description: Build target (editor, template_release, template_debug).
    default: editor
  tests:
    description: Unit tests.
    default: false
    required: false
  platform:
    description: Target platform.
    required: false
  sconsflags:
    description: Additional SCons flags.
    default: ''
    required: false
  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:" platform=${{ inputs.platform }} target=${{ inputs.target }} tests=${{ inputs.tests }} ${{ env.SCONSFLAGS }}

        if [ "${{ inputs.target }}" != "editor" ]; then
          # Ensure we don't include editor code in export template builds.
          rm -rf editor
        fi

        if [ "${{ github.event.number }}" != "" ]; then
          # Set build identifier with pull request number if available. This is displayed throughout the editor.
          export BUILD_NAME="gh-${{ github.event.number }}"
        else
          export BUILD_NAME="gh"
        fi

        scons platform=${{ inputs.platform }} target=${{ inputs.target }} tests=${{ inputs.tests }} ${{ env.SCONSFLAGS }}
        ls -l bin/