GitHub Workflow: Use new setup-godot-cpp github action from godot-cpp submodule. #55
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build GDExtension | |
| on: | |
| workflow_call: | |
| push: | |
| pull_request: | |
| merge_group: | |
| env: | |
| LIBNAME: example | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Debug templates | |
| - platform: linux | |
| float-precision: single | |
| arch: x86_64 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: windows | |
| float-precision: single | |
| arch: x86_32 | |
| target-type: template_debug | |
| os: windows-latest | |
| - platform: windows | |
| float-precision: single | |
| arch: x86_64 | |
| target-type: template_debug | |
| os: windows-latest | |
| - platform: macos | |
| float-precision: single | |
| arch: universal | |
| target-type: template_debug | |
| os: macos-latest | |
| - platform: android | |
| float-precision: single | |
| arch: arm64 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: android | |
| float-precision: single | |
| arch: arm32 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: android | |
| float-precision: single | |
| arch: x86_64 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: android | |
| float-precision: single | |
| arch: x86_32 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: ios | |
| float-precision: single | |
| arch: arm64 | |
| target-type: template_debug | |
| os: macos-latest | |
| - platform: web | |
| float-precision: single | |
| arch: wasm32 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| # Release templates | |
| - platform: linux | |
| float-precision: single | |
| arch: x86_64 | |
| target-type: template_release | |
| os: ubuntu-20.04 | |
| # - platform: windows | |
| # float-precision: single | |
| # arch: x86_32 | |
| # target-type: template_release | |
| # os: windows-latest | |
| # - platform: windows | |
| # float-precision: single | |
| # arch: x86_64 | |
| # target-type: template_release | |
| # os: windows-latest | |
| # - platform: macos | |
| # float-precision: single | |
| # arch: universal | |
| # target-type: template_release | |
| # os: macos-latest | |
| # - platform: android | |
| # float-precision: single | |
| # arch: arm64 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # - platform: android | |
| # float-precision: single | |
| # arch: arm32 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # - platform: android | |
| # float-precision: single | |
| # arch: x86_64 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # - platform: android | |
| # float-precision: single | |
| # arch: x86_32 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # - platform: ios | |
| # float-precision: single | |
| # arch: arm64 | |
| # target-type: template_release | |
| # os: macos-latest | |
| # - platform: web | |
| # float-precision: single | |
| # arch: wasm32 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # Double precision templates | |
| # Double precision debug templates | |
| - platform: linux | |
| float-precision: double | |
| arch: x86_64 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: windows | |
| float-precision: double | |
| arch: x86_32 | |
| target-type: template_debug | |
| os: windows-latest | |
| - platform: windows | |
| float-precision: double | |
| arch: x86_64 | |
| target-type: template_debug | |
| os: windows-latest | |
| - platform: macos | |
| float-precision: double | |
| arch: universal | |
| target-type: template_debug | |
| os: macos-latest | |
| - platform: android | |
| float-precision: double | |
| arch: arm64 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: android | |
| float-precision: double | |
| arch: arm32 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: android | |
| float-precision: double | |
| arch: x86_64 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: android | |
| float-precision: double | |
| arch: x86_32 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| - platform: ios | |
| float-precision: double | |
| arch: arm64 | |
| target-type: template_debug | |
| os: macos-latest | |
| - platform: web | |
| float-precision: double | |
| arch: wasm32 | |
| target-type: template_debug | |
| os: ubuntu-20.04 | |
| # Double precision release templates | |
| - platform: linux | |
| float-precision: double | |
| arch: x86_64 | |
| target-type: template_release | |
| os: ubuntu-20.04 | |
| # - platform: windows | |
| # float-precision: double | |
| # arch: x86_32 | |
| # target-type: template_release | |
| # os: windows-latest | |
| # - platform: windows | |
| # float-precision: double | |
| # arch: x86_64 | |
| # target-type: template_release | |
| # os: windows-latest | |
| # - platform: macos | |
| # float-precision: double | |
| # arch: universal | |
| # target-type: template_release | |
| # os: macos-latest | |
| # - platform: android | |
| # float-precision: double | |
| # arch: arm64 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # - platform: android | |
| # float-precision: double | |
| # arch: arm32 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # - platform: android | |
| # float-precision: double | |
| # arch: x86_64 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # - platform: android | |
| # float-precision: double | |
| # arch: x86_32 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| # - platform: ios | |
| # float-precision: double | |
| # arch: arm64 | |
| # target-type: template_release | |
| # os: macos-latest | |
| # - platform: web | |
| # float-precision: double | |
| # arch: wasm32 | |
| # target-type: template_release | |
| # os: ubuntu-20.04 | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| # Lint | |
| #- name: Setup clang-format | |
| # shell: bash | |
| # run: | | |
| # python -m pip install clang-format | |
| #- name: Run clang-format | |
| # shell: bash | |
| # run: | | |
| # clang-format src/** --dry-run --Werror | |
| # Build | |
| - name: Setup godot-cpp | |
| uses: ./godot-cpp/.github/actions/setup-godot-cpp | |
| with: | |
| platform: ${{ matrix.platform }} | |
| em-version: 3.1.62 | |
| # Build GDExtension | |
| - name: Cache .scons_cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ github.workspace }}/.scons-cache/ | |
| key: ${{ matrix.platform }}_${{ matrix.arch }}_${{ matrix.float-precision }}_${{ matrix.target-type }}_cache | |
| - name: Build GDExtension Debug Build | |
| shell: sh | |
| env: | |
| SCONS_CACHE: ${{ github.workspace }}/.scons-cache/ | |
| run: | | |
| scons target=${{ matrix.target-type }} platform=${{ matrix.platform }} arch=${{ matrix.arch }} precision=${{ matrix.float-precision }} | |
| # Sign | |
| - name: Mac Sign | |
| # Disable sign if secrets are not set | |
| if: ${{ matrix.platform == 'macos' && env.APPLE_CERT_BASE64 }} | |
| env: | |
| APPLE_CERT_BASE64: ${{ secrets.APPLE_CERT_BASE64 }} | |
| uses: ./.github/actions/sign | |
| with: | |
| FRAMEWORK_PATH: bin/macos/macos.framework | |
| APPLE_CERT_BASE64: ${{ secrets.APPLE_CERT_BASE64 }} | |
| APPLE_CERT_PASSWORD: ${{ secrets.APPLE_CERT_PASSWORD }} | |
| APPLE_DEV_PASSWORD: ${{ secrets.APPLE_DEV_PASSWORD }} | |
| APPLE_DEV_ID: ${{ secrets.APPLE_DEV_ID }} | |
| APPLE_DEV_TEAM_ID: ${{ secrets.APPLE_DEV_TEAM_ID }} | |
| APPLE_DEV_APP_ID: ${{ secrets.APPLE_DEV_APP_ID }} | |
| - name: Windows - Delete compilation files | |
| if: ${{ matrix.platform == 'windows' }} | |
| shell: pwsh | |
| run: | | |
| Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force | |
| - name: Upload Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: godot-cpp-template-${{ matrix.platform }}-${{ matrix.arch }}-${{ matrix.float-precision }}-${{ matrix.target-type }} | |
| path: | | |
| ${{ github.workspace }}/bin/** | |
| # Merges all the build artifacts together into a single godot-cpp-template artifact. | |
| # If you comment out this step, all the builds will be uploaded individually. | |
| merge: | |
| runs-on: ubuntu-20.04 | |
| needs: build | |
| steps: | |
| - name: Merge Artifacts | |
| uses: actions/upload-artifact/merge@v4 | |
| with: | |
| name: godot-cpp-template | |
| pattern: godot-cpp-template-* | |
| delete-merged: true |