Skip to content

updated 1165

updated 1165 #148

name: 🛠️ GDExtension Build
on:
push:
paths:
[
src/**,
.github/**,
"!.github/**/util_*",
"patches/**",
lib_utils.py,
SConstruct,
]
workflow_dispatch:
repository_dispatch:
# Stop the same workflow actions
concurrency:
group: ${{github.workflow}}-${{github.event.pull_request.number || github.run_id}}
cancel-in-progress: true
env:
SCONS_CACHE: ${{github.workspace}}/.scons-cache/
OUTPUT_LIBS_PATH: bin
FORCE_DISABLE_UNITY: yes
jobs:
windows-gdextension:
name: 🏁 Windows
runs-on: "windows-latest"
strategy:
fail-fast: false
matrix:
arch: [x86_64]
target: [template_debug, template_release]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: true
submodules: recursive
- name: Compile GDExtension
uses: ./.github/actions/compile_gdextension
with:
platform: windows
target: ${{matrix.target}}
arch: ${{matrix.arch}}
output_libs_path: ${{env.OUTPUT_LIBS_PATH}}
artifact: windows
additional: lto=yes
# ============================================
linux-gdextension:
name: 🐧 Linux
runs-on: "ubuntu-20.04"
strategy:
fail-fast: false
matrix:
arch: [x86_64]
target: [template_debug, template_release]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: true
submodules: recursive
- name: Compile GDExtension
uses: ./.github/actions/compile_gdextension
with:
platform: linux
target: ${{matrix.target}}
arch: ${{matrix.arch}}
output_libs_path: ${{env.OUTPUT_LIBS_PATH}}
artifact: linux
additional: lto=yes
# ============================================
macos-gdextension:
name: 🍏 MacOS
runs-on: "macos-latest"
strategy:
fail-fast: false
matrix:
arch: [universal]
target: [template_debug, template_release]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: true
submodules: recursive
- name: Compile GDExtension
uses: ./.github/actions/compile_gdextension
with:
platform: macos
target: ${{matrix.target}}
arch: ${{matrix.arch}}
output_libs_path: ${{env.OUTPUT_LIBS_PATH}}
artifact: macos
additional: lto=yes macos_deployment_target=10.14
# ============================================
android-gdextension:
name: 🤖 Android
runs-on: "ubuntu-latest"
strategy:
fail-fast: false
matrix:
arch: [arm32, arm64, x86_32, x86_64]
target: [template_debug, template_release]
env:
ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/23.2.8568313
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: true
submodules: recursive
- name: Compile GDExtension
uses: ./.github/actions/compile_gdextension
with:
platform: android
target: ${{matrix.target}}
arch: ${{matrix.arch}}
output_libs_path: ${{env.OUTPUT_LIBS_PATH}}
artifact: android
additional: lto=yes
# ============================================
collect-gdextension:
needs:
[
windows-gdextension,
linux-gdextension,
macos-gdextension,
android-gdextension,
]
name: 📦 Collect GDExtension binaries
runs-on: ubuntu-latest
steps:
- name: Download Binaries
uses: actions/download-artifact@v3
with:
path: extracted_files
- name: Store all libraries in one directory
run: |
ls -R extracted_files/
mv -f extracted_files/**/* extracted_files
rm -rf extracted_files/**/
touch extracted_files/.gdignore
- name: Upload GDExtension
uses: actions/upload-artifact@v3
with:
name: gdextension_libs
retention-days: 7
path: extracted_files/*