github actions settings 16 #10
This file contains 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 QuarkPhysics Extension | ||
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: 🔗 GDExtension Debug Build | ||
uses: ./.github/actions/build | ||
with: | ||
platform: ${{ matrix.platform }} | ||
arch: ${{ matrix.arch }} | ||
float-precision: ${{ matrix.float-precision }} | ||
build-target-type: ${{ matrix.target-type }} | ||
# 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: project/addons/quarkphysics/bin/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 project/addons/quarkphysics/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 }}/project/addons/quarkphysics/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: Upload project directory as artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: godot-quarkphysics | ||
path: ${{ github.workspace }}/project/ |