name: Build GDExtension on: workflow_call: push: env: LIBNAME: example jobs: build: strategy: fail-fast: false matrix: include: - platform: linux float-precision: single arch: x86_64 os: ubuntu-20.04 - platform: windows float-precision: single arch: x86_32 os: windows-latest - platform: windows float-precision: single arch: x86_64 os: windows-latest - platform: macos float-precision: single arch: universal os: macos-latest - platform: android float-precision: single arch: arm64 os: ubuntu-20.04 - platform: android float-precision: single arch: arm32 os: ubuntu-20.04 - platform: android float-precision: single arch: x86_64 os: ubuntu-20.04 - platform: android float-precision: single arch: x86_32 os: ubuntu-20.04 - platform: ios float-precision: single arch: arm64 os: macos-latest - platform: web float-precision: single arch: wasm32 os: ubuntu-20.04 - platform: linux float-precision: double arch: x86_64 os: ubuntu-20.04 - platform: windows float-precision: double arch: x86_32 os: windows-latest - platform: windows float-precision: double arch: x86_64 os: windows-latest - platform: macos float-precision: double arch: universal os: macos-latest - platform: android float-precision: double arch: arm64 os: ubuntu-20.04 - platform: android float-precision: double arch: arm32 os: ubuntu-20.04 - platform: android float-precision: double arch: x86_64 os: ubuntu-20.04 - platform: android float-precision: double arch: x86_32 os: ubuntu-20.04 - platform: ios float-precision: double arch: arm64 os: macos-latest - platform: web float-precision: double arch: wasm32 os: ubuntu-20.04 runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v3 with: submodules: true fetch-depth: 0 # 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: 🔗 GDExtension Build uses: ./.github/actions/build with: platform: ${{ matrix.platform }} arch: ${{ matrix.arch }} float-precision: ${{ matrix.float-precision }} build-target-type: template_release # 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@v3 with: name: godot-cpp-template path: | ${{ github.workspace }}/bin/**