diff --git a/.github/workflows/all_builds.yml b/.github/workflows/all_builds.yml index 5f1af39..fd8332c 100644 --- a/.github/workflows/all_builds.yml +++ b/.github/workflows/all_builds.yml @@ -61,6 +61,7 @@ jobs: with: godot-treeish: ${{ needs.cache-sha.outputs.godot-sha }} limboai-treeish: ${{ needs.cache-sha.outputs.limboai-sha }} + test-build: false macos-build: name: ๐ŸŽ macOS @@ -77,6 +78,7 @@ jobs: with: godot-treeish: ${{ needs.cache-sha.outputs.godot-sha }} limboai-treeish: ${{ needs.cache-sha.outputs.limboai-sha }} + test-build: false web-build: name: ๐ŸŒ Web diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 800e9dd..55f88d7 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -10,6 +10,10 @@ on: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master + test-build: + description: Should we perform only a limited number of test builds? + type: boolean + default: false workflow_dispatch: inputs: @@ -21,6 +25,10 @@ on: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master + test-build: + description: Should we perform only a limited number of test builds? + type: boolean + default: false # Global Settings env: @@ -32,73 +40,88 @@ env: jobs: linux-builds: runs-on: "ubuntu-20.04" - name: ${{ matrix.name }} + name: ${{ matrix.opts.name }} strategy: fail-fast: false matrix: - include: + opts: - name: Editor (x86_64, release) target: editor arch: x86_64 build-mono: false + should-build: true - name: Template (x86_64, release) target: template_release arch: x86_64 build-mono: false + should-build: true - name: Template (x86_64, debug) target: template_debug arch: x86_64 build-mono: false + should-build: ${{ !inputs.test-build }} # - name: Editor (x86_32, release) # target: editor # arch: x86_32 # build-mono: false + # should-build: ${{ !inputs.test-build }} - name: Template (x86_32, release) target: template_release arch: x86_32 build-mono: false + should-build: ${{ !inputs.test-build }} - name: Template (x86_32, debug) target: template_debug arch: x86_32 build-mono: false + should-build: ${{ !inputs.test-build }} - name: Editor .NET (x86_64, release) target: editor arch: x86_64 build-mono: true + should-build: ${{ !inputs.test-build }} - name: Template .NET (x86_64, release) target: template_release arch: x86_64 build-mono: true + should-build: ${{ !inputs.test-build }} - name: Template .NET (x86_64, debug) target: template_debug arch: x86_64 build-mono: true + should-build: ${{ !inputs.test-build }} # - name: Editor .NET (x86_32, release) # target: editor # arch: x86_32 # build-mono: true + # should-build: ${{ !inputs.test-build }} - name: Template .NET (x86_32, release) target: template_release arch: x86_32 build-mono: true + should-build: ${{ !inputs.test-build }} - name: Template .NET (x86_32, debug) target: template_debug arch: x86_32 build-mono: true + should-build: ${{ !inputs.test-build }} + + exclude: + - { opts: {should-build: false }} env: - BIN: godot.linuxbsd.${{matrix.target}}.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }} + BIN: godot.linuxbsd.${{matrix.opts.target}}.${{matrix.opts.arch}}${{ matrix.opts.build-mono == true && '.mono' || '' }} steps: - name: Clone Godot @@ -118,7 +141,7 @@ jobs: # About sed see: https://github.com/godotengine/buildroot/issues/6 - name: Set up buildroot x86_64 - if: matrix.arch == 'x86_64' + if: matrix.opts.arch == 'x86_64' run: | wget https://download.tuxfamily.org/godotengine/toolchains/linux/x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 tar -xjf x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 @@ -129,7 +152,7 @@ jobs: cd .. - name: Set up buildroot x86_32 - if: matrix.arch == 'x86_32' + if: matrix.opts.arch == 'x86_32' run: | wget https://download.tuxfamily.org/godotengine/toolchains/linux/i686-godot-linux-gnu_sdk-buildroot.tar.bz2 tar -xjf i686-godot-linux-gnu_sdk-buildroot.tar.bz2 @@ -153,17 +176,17 @@ jobs: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | PATH=${GITHUB_WORKSPACE}/buildroot/bin:$PATH - scons platform=linuxbsd target=${{matrix.target}} arch=${{matrix.arch}} module_mono_enabled=${{matrix.build-mono}} ${{env.SCONSFLAGS}} + scons platform=linuxbsd target=${{matrix.opts.target}} arch=${{matrix.opts.arch}} module_mono_enabled=${{matrix.opts.build-mono}} ${{env.SCONSFLAGS}} - name: Generate C# glue - if: matrix.build-mono && matrix.target == 'editor' + if: matrix.opts.build-mono && matrix.opts.target == 'editor' env: GODOT_VERSION_STATUS: limboai run: | ./bin/$BIN --headless --generate-mono-glue ./modules/mono/glue || true - name: Build .NET solutions - if: matrix.build-mono && matrix.target == 'editor' + if: matrix.opts.build-mono && matrix.opts.target == 'editor' env: GODOT_VERSION_STATUS: limboai run: | @@ -171,7 +194,7 @@ jobs: - name: Prepare artifact env: - OUTDIR: ${{ startsWith(matrix.target, 'template') && 'out/templates' || 'out/' }} + OUTDIR: ${{ startsWith(matrix.opts.target, 'template') && 'out/templates' || 'out/' }} run: | strip ./bin/godot.* chmod +x ./bin/godot.* @@ -182,7 +205,7 @@ jobs: # Zipping the editor artifact to retain executable bit; # workaround for: https://github.com/actions/upload-artifact/issues/38 - name: Zip the editor artifact - if: matrix.target == 'editor' + if: matrix.opts.target == 'editor' shell: bash run: | pushd out/ @@ -192,19 +215,19 @@ jobs: popd - name: Rename templates - if: startsWith(matrix.target, 'template') + if: startsWith(matrix.opts.target, 'template') env: - BUILD_TYPE: ${{ endsWith(matrix.target, 'release') && 'release' || 'debug' }} + BUILD_TYPE: ${{ endsWith(matrix.opts.target, 'release') && 'release' || 'debug' }} run: | - mv out/templates/${BIN} out/templates/linux_${BUILD_TYPE}.${{matrix.arch}} + mv out/templates/${BIN} out/templates/linux_${BUILD_TYPE}.${{matrix.opts.arch}} echo "${GODOT_VERSION}.limboai+${LIMBOAI_VERSION}" > out/templates/version.txt ls -R out/ - name: Upload artifact uses: actions/upload-artifact@v3 env: - NAME_EDITOR: ${{env.NAME_PREFIX}}.${{matrix.target}}.linux.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }} - NAME_TEMPLATES: ${{env.NAME_PREFIX}}.export-templates${{ matrix.build-mono == true && '.mono' || '' }} + NAME_EDITOR: ${{env.NAME_PREFIX}}.${{matrix.opts.target}}.linux.${{matrix.opts.arch}}${{ matrix.opts.build-mono == true && '.mono' || '' }} + NAME_TEMPLATES: ${{env.NAME_PREFIX}}.export-templates${{ matrix.opts.build-mono == true && '.mono' || '' }} with: - name: ${{ startsWith(matrix.target, 'template') && env.NAME_TEMPLATES || env.NAME_EDITOR }} + name: ${{ startsWith(matrix.opts.target, 'template') && env.NAME_TEMPLATES || env.NAME_EDITOR }} path: out/* diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 38dd193..dfcf088 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -10,6 +10,10 @@ on: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master + test-build: + description: Should we perform only a limited number of test builds? + type: boolean + default: false workflow_dispatch: inputs: @@ -21,6 +25,10 @@ on: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master + test-build: + description: Should we perform only a limited number of test builds? + type: boolean + default: false # Global Settings @@ -33,49 +41,55 @@ env: jobs: macos-builds: runs-on: "macos-latest" - name: ${{ matrix.name }} + name: ${{ matrix.opts.name }} strategy: fail-fast: false matrix: - include: + opts: - name: Editor (x86_64, release) target: editor arch: x86_64 build-mono: false artifact-name: macos-editor + should-build: true - name: Template (x86_64, release) target: template_release arch: x86_64 build-mono: false artifact-name: macos-templates + should-build: ${{ !inputs.test-build }} - name: Template (x86_64, debug) target: template_debug arch: x86_64 build-mono: false artifact-name: macos-templates + should-build: ${{ !inputs.test-build }} - name: Editor (arm64, release) target: editor arch: arm64 build-mono: false artifact-name: macos-editor + should-build: true - name: Template (arm64, release) target: template_release arch: arm64 build-mono: false artifact-name: macos-templates + should-build: ${{ !inputs.test-build }} - name: Template (arm64, debug) target: template_debug arch: arm64 build-mono: false artifact-name: macos-templates + should-build: ${{ !inputs.test-build }} - # ! Disabled for now: .NET version fail to build + # ! Disabled for now: .NET version fails to build # - name: .NET Editor (x86_64, release) # target: editor @@ -83,18 +97,21 @@ jobs: # build-mono: true # artifact-name: macos-mono-editor # cache-name: macos-editor + # should-build: ${{ !inputs.test-build }} # - name: .NET Template (x86_64, release) # target: template_release # arch: x86_64 # build-mono: true # artifact-name: macos-mono-templates + # should-build: ${{ !inputs.test-build }} # - name: .NET Template (x86_64, debug) # target: template_debug # arch: x86_64 # build-mono: true # artifact-name: macos-mono-templates + # should-build: ${{ !inputs.test-build }} # - name: .NET Editor (arm64, release) # target: editor @@ -102,21 +119,27 @@ jobs: # build-mono: true # artifact-name: macos-mono-editor # cache-name: macos-editor + # should-build: ${{ !inputs.test-build }} # - name: .NET Template (arm64, release) # target: template_release # arch: arm64 # build-mono: true # artifact-name: macos-mono-templates + # should-build: ${{ !inputs.test-build }} # - name: .NET Template (arm64, debug) # target: template_debug # arch: arm64 # build-mono: true # artifact-name: macos-mono-templates + # should-build: ${{ !inputs.test-build }} + + exclude: + - { opts: {should-build: false }} env: - BIN: godot.macos.${{matrix.target}}.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }} + BIN: godot.macos.${{matrix.opts.target}}.${{matrix.opts.arch}}${{ matrix.opts.build-mono == true && '.mono' || '' }} steps: @@ -170,17 +193,17 @@ jobs: env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | - scons -j2 platform=macos target=${{matrix.target}} arch=${{matrix.arch}} module_mono_enabled=${{matrix.build-mono}} ${{env.SCONSFLAGS}} + scons -j2 platform=macos target=${{matrix.opts.target}} arch=${{matrix.opts.arch}} module_mono_enabled=${{matrix.opts.build-mono}} ${{env.SCONSFLAGS}} # ! Disabled for now: .NET version fail to build # - name: Generate C# glue - # if: matrix.build-mono && matrix.target == 'editor' + # if: matrix.opts.build-mono && matrix.opts.target == 'editor' # run: | # ./bin/$BIN --headless --generate-mono-glue ./modules/mono/glue || true # - name: Build .NET solutions - # if: matrix.build-mono && matrix.target == 'editor' + # if: matrix.opts.build-mono && matrix.opts.target == 'editor' # run: | # ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=macos @@ -192,7 +215,7 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v3 with: - name: ${{ matrix.artifact-name }} + name: ${{ matrix.opts.artifact-name }} path: bin/* make-macos-bundle: @@ -250,12 +273,14 @@ jobs: path: out/editor/* - name: Download templates artifact + if: ${{ !inputs.test-build }} uses: actions/download-artifact@v3 with: name: macos-templates path: bin/ - name: Make templates bundle + if: ${{ !inputs.test-build }} run: | rm -rf out/ ls bin/ @@ -282,6 +307,7 @@ jobs: failOnError: false - name: Upload templates bundle + if: ${{ !inputs.test-build }} uses: actions/upload-artifact@v3 with: name: ${{env.NAME_PREFIX}}.export-templates diff --git a/.github/workflows/test_builds.yml b/.github/workflows/test_builds.yml index 404d52f..1ae3d0f 100644 --- a/.github/workflows/test_builds.yml +++ b/.github/workflows/test_builds.yml @@ -10,6 +10,11 @@ on: - "**/*.png" - "demo/*" - "doc/*" + inputs: + godot-treeish: + description: A tag, branch or commit hash in the Godot repository. + type: string + default: 4.2.1-stable pull_request: branches: [ master ] @@ -18,80 +23,37 @@ on: - "LICENSE" - "**/*.png" - "demo/*" - -# Global settings -env: - GODOT_TREEISH: 4.2-stable - SCONSFLAGS: verbose=yes warnings=extra werror=yes - SCONS_CACHE_LIMIT: 7168 - DOTNET_NOLOGO: true - DOTNET_CLI_TELEMETRY_OPTOUT: true + inputs: + godot-treeish: + description: A tag, branch or commit hash in the Godot repository. + type: string + default: 4.2.1-stable jobs: - linux-test-builds: + unit-tests: + name: ๐Ÿงช Unit tests runs-on: "ubuntu-20.04" - name: ${{ matrix.name }} - strategy: - fail-fast: false - matrix: - include: - - name: ๐Ÿง Unit tests - target: editor - arch: x86_64 - production: false - dev_build: true - tests: true - build-mono: false - artifact: false - - - name: ๐Ÿง Editor (x86_64, release) - target: editor - arch: x86_64 - production: true - dev_build: false - tests: false - build-mono: false - artifact: true - - - name: ๐Ÿง Template (x86_64, release) - target: template_release - arch: x86_64 - production: true - dev_build: false - tests: false - build-mono: false - artifact: true - - - name: ๐Ÿง Template (x86_64, debug) - target: template_debug - arch: x86_64 - production: true - dev_build: false - tests: false - build-mono: false - artifact: true + # Settings env: - BIN: godot.linuxbsd.${{matrix.target}}${{matrix.dev_build == true && '.dev' || ''}}.${{matrix.arch}}${{matrix.build-mono == true && '.mono' || ''}} + SCONSFLAGS: platform=linuxbsd target=editor arch=x86_64 production=false dev_build=true tests=true verbose=yes warnings=extra werror=yes + SCONS_CACHE_LIMIT: 7168 + BIN: godot.linuxbsd.editor.dev.x86_64 steps: - name: Clone Godot uses: actions/checkout@v4 with: repository: godotengine/godot - ref: ${{ env.GODOT_TREEISH }} + ref: ${{ inputs.godot-treeish }} - name: Clone LimboAI module uses: actions/checkout@v4 with: path: modules/limboai - # Inits GODOT_VERSION, LIMBOAI_VERSION and NAME_PREFIX environment variables. - - uses: ./modules/limboai/.github/actions/init-version - # About sed see: https://github.com/godotengine/buildroot/issues/6 - name: Set up buildroot x86_64 - if: matrix.arch == 'x86_64' run: | wget https://download.tuxfamily.org/godotengine/toolchains/linux/x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 tar -xjf x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 @@ -101,25 +63,15 @@ jobs: ./relocate-sdk.sh cd .. - - name: Set up buildroot x86_32 - if: matrix.arch == 'x86_32' - run: | - wget https://download.tuxfamily.org/godotengine/toolchains/linux/i686-godot-linux-gnu_sdk-buildroot.tar.bz2 - tar -xjf i686-godot-linux-gnu_sdk-buildroot.tar.bz2 - mv i686-godot-linux-gnu_sdk-buildroot buildroot - cd buildroot - ./relocate-sdk.sh - cd .. - - name: Set up scons cache uses: actions/cache@v3 with: path: ${{github.workspace}}/.scons_cache/ - key: ${{env.BIN}}-${{env.GODOT_TREEISH}}-${{github.ref}}-${{github.sha}} + key: ${{env.BIN}}-${{inputs.godot-treeish}}-${{github.ref}}-${{github.sha}} restore-keys: | - ${{env.BIN}}-${{env.GODOT_TREEISH}}-${{github.ref}}-${{github.sha}} - ${{env.BIN}}-${{env.GODOT_TREEISH}}-${{github.ref}} - ${{env.BIN}}-${{env.GODOT_TREEISH}} + ${{env.BIN}}-${{inputs.godot-treeish}}-${{github.ref}}-${{github.sha}} + ${{env.BIN}}-${{inputs.godot-treeish}}-${{github.ref}} + ${{env.BIN}}-${{inputs.godot-treeish}} continue-on-error: true - name: Set up Python 3.x @@ -135,12 +87,6 @@ jobs: python --version scons --version - - name: Set up .NET SDK - if: matrix.build-mono - uses: actions/setup-dotnet@v2 - with: - dotnet-version: '6.0.x' - - name: Setup GCC problem matcher uses: ammaraskar/gcc-problem-matcher@master @@ -149,46 +95,38 @@ jobs: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | PATH=${GITHUB_WORKSPACE}/buildroot/bin:$PATH - scons platform=linuxbsd target=${{matrix.target}} arch=${{matrix.arch}} production=${{matrix.production}} dev_build=${{matrix.dev_build}} tests=${{matrix.tests}} module_mono_enabled=${{matrix.build-mono}} ${{env.SCONSFLAGS}} + scons ${{env.SCONSFLAGS}} + + - name: Verify build + run: | ls -l bin/ - - - name: Generate C# glue - if: matrix.build-mono - run: | - bin/${{ env.BIN }} --headless --generate-mono-glue ./modules/mono/glue || true - - - name: Build .NET solutions - if: matrix.build-mono - run: | - ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd - - # Execute unit tests for the editor - - name: Unit tests - if: matrix.tests - run: | bin/${{ env.BIN }} --version bin/${{ env.BIN }} --help + + - name: Unit tests + run: | bin/${{ env.BIN }} --test --headless - - name: Strip binaries - if: matrix.dev_build == false - run: strip ./bin/godot.* + linux-test-build: + name: ๐Ÿง Linux test build + uses: ./.github/workflows/linux.yml + with: + godot-treeish: ${{ inputs.godot-treeish }} + limboai-treeish: ${{ github.sha }} + test-build: true - - name: Prepare artifact - if: matrix.artifact - env: - OUTDIR: ${{ startsWith(matrix.target, 'template') && 'out/templates' || 'out/' }} - run: | - chmod +x ./bin/godot.* - mkdir -p ${{env.OUTDIR}} - mv ./bin/godot.* ${{env.OUTDIR}} + windows-test-build: + name: ๐ŸชŸ Windows test build + uses: ./.github/workflows/windows.yml + with: + godot-treeish: ${{ inputs.godot-treeish }} + limboai-treeish: ${{ github.sha }} + test-build: true - - name: Upload artifact - if: matrix.artifact - uses: actions/upload-artifact@v3 - env: - NAME_EDITOR: ${{env.NAME_PREFIX}}.${{matrix.target}}${{matrix.dev_build == true && '.dev' || ''}}.linux.${{matrix.arch}}${{matrix.build-mono == true && '.mono' || ''}} - NAME_TEMPLATES: ${{env.NAME_PREFIX}}.export-templates${{matrix.build-mono == true && '.mono' || ''}} - with: - name: ${{ startsWith(matrix.target, 'template') && env.NAME_TEMPLATES || env.NAME_EDITOR }} - path: out/* + macos-test-build: + name: ๐ŸŽ macOS test build + uses: ./.github/workflows/macos.yml + with: + godot-treeish: ${{ inputs.godot-treeish }} + limboai-treeish: ${{ github.sha }} + test-build: true diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index ab030f3..1ca84a7 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -10,6 +10,10 @@ on: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master + test-build: + description: Should we perform only a limited number of test builds? + type: boolean + default: false workflow_dispatch: inputs: @@ -21,6 +25,10 @@ on: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master + test-build: + description: Should we perform only a limited number of test builds? + type: boolean + default: false # Global Settings env: @@ -33,73 +41,88 @@ env: jobs: windows-builds: runs-on: "windows-latest" - name: ${{ matrix.name }} + name: ${{ matrix.opts.name }} strategy: fail-fast: false matrix: - include: + opts: - name: Editor (x86_64, release) target: editor arch: x86_64 build-mono: false + should-build: true - name: Template (x86_64, release) target: template_release arch: x86_64 build-mono: false + should-build: ${{ !inputs.test-build }} - name: Template (x86_64, debug) target: template_debug arch: x86_64 build-mono: false + should-build: ${{ !inputs.test-build }} # - name: Editor (x86_32, release) # target: editor # arch: x86_32 # build-mono: false + # should-build: ${{ !inputs.test-build }} - name: Template (x86_32, release) target: template_release arch: x86_32 build-mono: false + should-build: ${{ !inputs.test-build }} - name: Template (x86_32, debug) target: template_debug arch: x86_32 build-mono: false + should-build: ${{ !inputs.test-build }} - name: Editor .NET (x86_64, release) target: editor arch: x86_64 build-mono: true + should-build: true - name: Template .NET (x86_64, release) target: template_release arch: x86_64 build-mono: true + should-build: ${{ !inputs.test-build }} - name: Template .NET (x86_64, debug) target: template_debug arch: x86_64 build-mono: true + should-build: ${{ !inputs.test-build }} # - name: Editor .NET (x86_32, release) # target: editor # arch: x86_32 # build-mono: true + # should-build: ${{ !inputs.test-build }} - name: Template .NET (x86_32, release) target: template_release arch: x86_32 build-mono: true + should-build: ${{ !inputs.test-build }} - name: Template .NET (x86_32, debug) target: template_debug arch: x86_32 build-mono: true + should-build: ${{ !inputs.test-build }} + + exclude: + - { opts: {should-build: false }} env: - BIN: godot.windows.${{matrix.target}}.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }} + BIN: godot.windows.${{matrix.opts.target}}.${{matrix.opts.arch}}${{ matrix.opts.build-mono == true && '.mono' || '' }} steps: - name: Clone Godot @@ -147,17 +170,17 @@ jobs: env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | - scons -j2 platform=windows target=${{matrix.target}} arch=${{matrix.arch}} module_mono_enabled=${{matrix.build-mono}} ${{env.SCONSFLAGS}} + scons -j2 platform=windows target=${{matrix.opts.target}} arch=${{matrix.opts.arch}} module_mono_enabled=${{matrix.opts.build-mono}} ${{env.SCONSFLAGS}} - name: Generate C# glue - if: matrix.build-mono && matrix.target == 'editor' + if: matrix.opts.build-mono && matrix.opts.target == 'editor' env: GODOT_VERSION_STATUS: limboai run: | ./bin/${{ env.BIN }} --headless --generate-mono-glue ./modules/mono/glue || true - name: Build .NET solutions - if: matrix.build-mono && matrix.target == 'editor' + if: matrix.opts.build-mono && matrix.opts.target == 'editor' env: GODOT_VERSION_STATUS: limboai run: | @@ -166,7 +189,7 @@ jobs: - name: Prepare artifact shell: bash env: - OUTDIR: ${{ startsWith(matrix.target, 'template') && 'out/templates' || 'out/' }} + OUTDIR: ${{ startsWith(matrix.opts.target, 'template') && 'out/templates' || 'out/' }} run: | rm -f bin/*.{exp,lib,pdb} mkdir -p ${{env.OUTDIR}} @@ -174,21 +197,21 @@ jobs: ls -R out/ - name: Rename templates - if: startsWith(matrix.target, 'template') + if: startsWith(matrix.opts.target, 'template') shell: bash env: - BUILD_TYPE: ${{ endsWith(matrix.target, 'release') && 'release' || 'debug' }} + BUILD_TYPE: ${{ endsWith(matrix.opts.target, 'release') && 'release' || 'debug' }} run: | - mv out/templates/${BIN}.exe out/templates/windows_${BUILD_TYPE}_${{matrix.arch}}.exe - mv out/templates/${BIN}.console.exe out/templates/windows_${BUILD_TYPE}_${{matrix.arch}}_console.exe + mv out/templates/${BIN}.exe out/templates/windows_${BUILD_TYPE}_${{matrix.opts.arch}}.exe + mv out/templates/${BIN}.console.exe out/templates/windows_${BUILD_TYPE}_${{matrix.opts.arch}}_console.exe echo "${GODOT_VERSION}.limboai+${LIMBOAI_VERSION}" > out/templates/version.txt ls -R out/ - name: Upload artifact uses: actions/upload-artifact@v3 env: - NAME_EDITOR: ${{env.NAME_PREFIX}}.${{matrix.target}}.windows.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }} - NAME_TEMPLATES: ${{env.NAME_PREFIX}}.export-templates${{ matrix.build-mono == true && '.mono' || '' }} + NAME_EDITOR: ${{env.NAME_PREFIX}}.${{matrix.opts.target}}.windows.${{matrix.opts.arch}}${{ matrix.opts.build-mono == true && '.mono' || '' }} + NAME_TEMPLATES: ${{env.NAME_PREFIX}}.export-templates${{ matrix.opts.build-mono == true && '.mono' || '' }} with: - name: ${{ startsWith(matrix.target, 'template') && env.NAME_TEMPLATES || env.NAME_EDITOR }} + name: ${{ startsWith(matrix.opts.target, 'template') && env.NAME_TEMPLATES || env.NAME_EDITOR }} path: out/*