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 platform: description: Target platform. 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:" 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/