Merge pull request #75 from unvermuthet/main

main
Patrick Exner (FlameLizard) 2025-02-21 16:31:40 +01:00 committed by GitHub
commit 8e13217ebe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 31 additions and 249 deletions

View File

@ -10,252 +10,34 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
include: # A build is made for every possible combination of parameters
# Debug templates # You can add or remove entries from the arrays of each parameter to custimize which builds you want to run
- platform: linux # See https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/running-variations-of-jobs-in-a-workflow
float-precision: single target:
arch: x86_64 [
target-type: template_debug { platform: linux, arch: x86_64, os: ubuntu-22.04 },
os: ubuntu-20.04 { platform: windows, arch: x86_64, os: windows-latest },
{ platform: windows, arch: x86_32, os: windows-latest },
- platform: windows { platform: macos, arch: universal, os: macos-latest },
float-precision: single { platform: android, arch: arm64, os: ubuntu-22.04 },
arch: x86_32 { platform: android, arch: arm32, os: ubuntu-22.04 },
target-type: template_debug { platform: android, arch: x86_64, os: ubuntu-22.04 },
os: windows-latest { platform: android, arch: x86_32, os: ubuntu-22.04 },
{ platform: ios, arch: arm64, os: macos-latest },
- platform: windows { platform: web, arch: wasm32, os: ubuntu-22.04 }
float-precision: single ]
arch: x86_64 target-type: [template_debug]
target-type: template_debug float-precision: [single, double]
os: windows-latest include: # Also build a release version for these specific targets. Remove if you add template_release above.
- target: { platform: linux, arch: x86_64, os: ubuntu-22.04 }
- 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 target-type: template_release
os: ubuntu-20.04 float-precision: single
# - platform: windows - target: { platform: linux, arch: x86_64, os: ubuntu-22.04 }
# 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 target-type: template_release
os: ubuntu-20.04 float-precision: double
# - platform: windows runs-on: ${{ matrix.target.os }}
# 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: steps:
# Clone this repository # Clone this repository
- name: Checkout - name: Checkout
@ -277,7 +59,7 @@ jobs:
- name: Setup godot-cpp - name: Setup godot-cpp
uses: ./godot-cpp/.github/actions/setup-godot-cpp uses: ./godot-cpp/.github/actions/setup-godot-cpp
with: with:
platform: ${{ matrix.platform }} platform: ${{ matrix.target.platform }}
em-version: 3.1.62 em-version: 3.1.62
# Build GDExtension (with caches) # Build GDExtension (with caches)
@ -285,18 +67,18 @@ jobs:
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: ${{ github.workspace }}/.scons-cache/ path: ${{ github.workspace }}/.scons-cache/
key: ${{ matrix.platform }}_${{ matrix.arch }}_${{ matrix.float-precision }}_${{ matrix.target-type }}_cache key: ${{ matrix.target.platform }}_${{ matrix.target.arch }}_${{ matrix.float-precision }}_${{ matrix.target-type }}_cache
- name: Build GDExtension Debug Build - name: Build GDExtension Debug Build
shell: sh shell: sh
env: env:
SCONS_CACHE: ${{ github.workspace }}/.scons-cache/ SCONS_CACHE: ${{ github.workspace }}/.scons-cache/
run: | run: |
scons target=${{ matrix.target-type }} platform=${{ matrix.platform }} arch=${{ matrix.arch }} precision=${{ matrix.float-precision }} scons target=${{ matrix.target-type }} platform=${{ matrix.target.platform }} arch=${{ matrix.target.arch }} precision=${{ matrix.float-precision }}
# Sign the binary (macOS only) # Sign the binary (macOS only)
- name: Mac Sign - name: Mac Sign
# Disable sign if secrets are not set # Disable sign if secrets are not set
if: ${{ matrix.platform == 'macos' && env.APPLE_CERT_BASE64 }} if: ${{ matrix.target.platform == 'macos' && env.APPLE_CERT_BASE64 }}
env: env:
APPLE_CERT_BASE64: ${{ secrets.APPLE_CERT_BASE64 }} APPLE_CERT_BASE64: ${{ secrets.APPLE_CERT_BASE64 }}
uses: ./.github/actions/sign uses: ./.github/actions/sign
@ -311,7 +93,7 @@ jobs:
# Clean up compilation files # Clean up compilation files
- name: Windows - Delete compilation files - name: Windows - Delete compilation files
if: ${{ matrix.platform == 'windows' }} if: ${{ matrix.target.platform == 'windows' }}
shell: pwsh shell: pwsh
run: | run: |
Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
@ -320,14 +102,14 @@ jobs:
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: godot-cpp-template-${{ matrix.platform }}-${{ matrix.arch }}-${{ matrix.float-precision }}-${{ matrix.target-type }} name: godot-cpp-template-${{ matrix.target.platform }}-${{ matrix.target.arch }}-${{ matrix.float-precision }}-${{ matrix.target-type }}
path: | path: |
${{ github.workspace }}/bin/** ${{ github.workspace }}/bin/**
# Merges all the build artifacts together into a single godot-cpp-template artifact. # 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. # If you comment out this step, all the builds will be uploaded individually.
merge: merge:
runs-on: ubuntu-20.04 runs-on: ubuntu-22.04
needs: build needs: build
steps: steps:
- name: Merge Artifacts - name: Merge Artifacts