Merge branch 'github-workflows'
This commit is contained in:
commit
c31f47fe3d
|
@ -0,0 +1,190 @@
|
||||||
|
name: 🤖 Android builds
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
# Global Settings
|
||||||
|
env:
|
||||||
|
SCONS_CACHE_LIMIT: 4096
|
||||||
|
SCONSFLAGS: production=yes tests=no verbose=yes warnings=extra werror=yes
|
||||||
|
DOTNET_NOLOGO: true
|
||||||
|
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
||||||
|
NAME_PREFIX: godot.${{inputs.godot-treeish}}.limboai+${{inputs.limboai-treeish}}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
android-builds:
|
||||||
|
runs-on: "ubuntu-20.04"
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Template (arm64, debug)
|
||||||
|
arch: arm64
|
||||||
|
target: template_debug
|
||||||
|
|
||||||
|
- name: Template (arm64, release)
|
||||||
|
arch: arm64
|
||||||
|
target: template_release
|
||||||
|
|
||||||
|
- name: Template (arm32, debug)
|
||||||
|
arch: arm32
|
||||||
|
target: template_debug
|
||||||
|
|
||||||
|
- name: Template (arm32, release)
|
||||||
|
arch: arm32
|
||||||
|
target: template_release
|
||||||
|
|
||||||
|
- name: Template (x86_64, debug)
|
||||||
|
arch: x86_64
|
||||||
|
target: template_debug
|
||||||
|
|
||||||
|
- name: Template (x86_64, release)
|
||||||
|
arch: x86_64
|
||||||
|
target: template_release
|
||||||
|
|
||||||
|
- name: Template (x86_32, debug)
|
||||||
|
arch: x86_32
|
||||||
|
target: template_debug
|
||||||
|
|
||||||
|
- name: Template (x86_32, release)
|
||||||
|
arch: x86_32
|
||||||
|
target: template_release
|
||||||
|
|
||||||
|
env:
|
||||||
|
BIN: godot.linuxbsd.${{matrix.target}}.${{matrix.arch}} #${{ matrix.build-mono == true && '.mono' || '' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Clone LimboAI module
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: modules/limboai
|
||||||
|
ref: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
- name: Set up Java 11
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: 11
|
||||||
|
|
||||||
|
- name: Set up scons
|
||||||
|
run: |
|
||||||
|
python -c "import sys; print(sys.version)"
|
||||||
|
python -m pip install scons==4.4.0
|
||||||
|
python --version
|
||||||
|
scons --version
|
||||||
|
|
||||||
|
- name: Set up scons cache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{github.workspace}}/.scons_cache/
|
||||||
|
key: ${{matrix.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
restore-keys: |
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}
|
||||||
|
|
||||||
|
- name: Compilation
|
||||||
|
env:
|
||||||
|
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
||||||
|
run: |
|
||||||
|
scons platform=android target=${{matrix.target}} arch=${{matrix.arch}} ${{env.SCONSFLAGS}}
|
||||||
|
ls platform/android/java/lib/libs/*
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: android-templates
|
||||||
|
path: platform/android/java/lib/libs/*
|
||||||
|
|
||||||
|
|
||||||
|
make-android-package:
|
||||||
|
runs-on: "ubuntu-20.04"
|
||||||
|
name: Make Android package
|
||||||
|
needs: android-builds
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Download Android template builds
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: android-templates
|
||||||
|
path: platform/android/java/lib/libs/
|
||||||
|
|
||||||
|
- name: Set up Java 11
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: 11
|
||||||
|
|
||||||
|
- name: Set up Python 3.x
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: 3.x
|
||||||
|
architecture: x64
|
||||||
|
|
||||||
|
- name: Set up scons
|
||||||
|
run: |
|
||||||
|
python -c "import sys; print(sys.version)"
|
||||||
|
python -m pip install scons==4.4.0
|
||||||
|
python --version
|
||||||
|
scons --version
|
||||||
|
|
||||||
|
- name: Generate Godot templates
|
||||||
|
run: |
|
||||||
|
cd platform/android/java
|
||||||
|
./gradlew generateGodotTemplates
|
||||||
|
cd ../../..
|
||||||
|
ls -l bin/
|
||||||
|
|
||||||
|
mkdir -p out/templates/
|
||||||
|
mv bin/android_* out/templates/
|
||||||
|
ls -l out/*
|
||||||
|
|
||||||
|
- name: Delete Android template builds
|
||||||
|
uses: geekyeggo/delete-artifact@v2
|
||||||
|
with:
|
||||||
|
name: android-templates
|
||||||
|
failOnError: false
|
||||||
|
|
||||||
|
- name: Upload Android libs
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{env.NAME_PREFIX}}.android-lib
|
||||||
|
path: bin/godot-lib.*
|
||||||
|
|
||||||
|
- name: Upload Android templates
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{env.NAME_PREFIX}}.export-templates
|
||||||
|
path: out/*
|
|
@ -0,0 +1,194 @@
|
||||||
|
name: 🍏 iOS builds
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
|
||||||
|
# Global Settings
|
||||||
|
env:
|
||||||
|
SCONS_CACHE_LIMIT: 4096
|
||||||
|
SCONSFLAGS: production=yes tests=no verbose=yes warnings=extra werror=yes
|
||||||
|
DOTNET_NOLOGO: true
|
||||||
|
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
||||||
|
NAME_PREFIX: godot.${{inputs.godot-treeish}}.limboai+${{inputs.limboai-treeish}}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
ios-builds:
|
||||||
|
runs-on: "macos-latest"
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Template (arm64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: arm64
|
||||||
|
ios_simulator: false
|
||||||
|
|
||||||
|
- name: Template (arm64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: arm64
|
||||||
|
ios_simulator: false
|
||||||
|
|
||||||
|
- name: Simulator Lib (x86_64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_64
|
||||||
|
ios_simulator: true
|
||||||
|
|
||||||
|
- name: Simulator Lib (x86_64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_64
|
||||||
|
ios_simulator: true
|
||||||
|
|
||||||
|
# ! Disabled for now as it doesn't work with cctools-port and current LLVM.
|
||||||
|
# * See https://github.com/godotengine/build-containers/pull/85.
|
||||||
|
# - name: Simulator Lib (arm64, release)
|
||||||
|
# target: template_release
|
||||||
|
# arch: arm64
|
||||||
|
# ios_simulator: true
|
||||||
|
|
||||||
|
# - name: Simulator Lib (arm64, debug)
|
||||||
|
# target: template_debug
|
||||||
|
# arch: arm64
|
||||||
|
# ios_simulator: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
BIN: godot.ios.${{matrix.target}}.${{matrix.arch}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Clone LimboAI module
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: modules/limboai
|
||||||
|
ref: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
- name: Set up Python 3.x
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
architecture: 'x64'
|
||||||
|
|
||||||
|
- name: Set up scons
|
||||||
|
run: |
|
||||||
|
python -c "import sys; print(sys.version)"
|
||||||
|
python -m pip install scons==4.4.0
|
||||||
|
|
||||||
|
- name: Diagnostics
|
||||||
|
run: |
|
||||||
|
python --version
|
||||||
|
scons --version
|
||||||
|
dotnet --info
|
||||||
|
|
||||||
|
- name: Set up Vulkan SDK
|
||||||
|
run: |
|
||||||
|
sh misc/scripts/install_vulkan_sdk_macos.sh
|
||||||
|
|
||||||
|
- name: Set up scons cache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{github.workspace}}/.scons_cache/
|
||||||
|
key: ${{matrix.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
restore-keys: |
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}
|
||||||
|
|
||||||
|
- name: Compilation
|
||||||
|
env:
|
||||||
|
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
||||||
|
run: |
|
||||||
|
scons platform=ios target=${{matrix.target}} arch=${{matrix.arch}} ios_simulator=${{matrix.ios_simulator}} ${{env.SCONSFLAGS}}
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ios-templates
|
||||||
|
path: bin/*
|
||||||
|
|
||||||
|
package-ios-templates:
|
||||||
|
runs-on: "macos-latest"
|
||||||
|
name: Package iOS templates
|
||||||
|
needs: ios-builds
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Set up Vulkan SDK
|
||||||
|
run: |
|
||||||
|
sh misc/scripts/install_vulkan_sdk_macos.sh
|
||||||
|
|
||||||
|
- name: Download templates artifact
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ios-templates
|
||||||
|
path: bin/
|
||||||
|
|
||||||
|
- name: Make template bundle
|
||||||
|
run: |
|
||||||
|
ls bin/
|
||||||
|
cp -r misc/dist/ios_xcode bin/
|
||||||
|
cd bin/
|
||||||
|
|
||||||
|
strip *.a
|
||||||
|
|
||||||
|
mv libgodot.ios.template_debug.arm64.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
|
||||||
|
# ! lipo -create libgodot.ios.template_debug.arm64.simulator.a libgodot.ios.template_debug.x86_64.simulator.a -output ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
||||||
|
mv libgodot.ios.template_debug.x86_64.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
||||||
|
|
||||||
|
mv libgodot.ios.template_release.arm64.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
|
||||||
|
# ! lipo -create libgodot.ios.template_release.arm64.simulator.a libgodot.ios.template_release.x86_64.simulator.a -output ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
||||||
|
mv libgodot.ios.template_release.x86_64.simulator.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
||||||
|
|
||||||
|
cp -r ~/VulkanSDK/*/MoltenVK/MoltenVK.xcframework ios_xcode
|
||||||
|
rm -rf ios_xcode/MoltenVK.xcframework/{macos,tvos}*
|
||||||
|
|
||||||
|
mkdir -p ${{github.workspace}}/out/templates/
|
||||||
|
cd ios_xcode
|
||||||
|
zip -q -9 -r ${{github.workspace}}/out/templates/ios.zip *
|
||||||
|
|
||||||
|
ls -l ${{github.workspace}}/out/*
|
||||||
|
|
||||||
|
- name: Upload template bundle
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{env.NAME_PREFIX}}.export-templates
|
||||||
|
path: out/*
|
||||||
|
|
||||||
|
- name: Delete templates artifact
|
||||||
|
uses: geekyeggo/delete-artifact@v2
|
||||||
|
with:
|
||||||
|
name: ios-templates
|
||||||
|
failOnError: false
|
|
@ -0,0 +1,188 @@
|
||||||
|
name: 🐧 Linux builds
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
# Global Settings
|
||||||
|
env:
|
||||||
|
SCONS_CACHE_LIMIT: 4096
|
||||||
|
SCONSFLAGS: production=yes tests=no verbose=yes warnings=extra werror=yes
|
||||||
|
DOTNET_NOLOGO: true
|
||||||
|
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
||||||
|
NAME_PREFIX: godot.${{inputs.godot-treeish}}.limboai+${{inputs.limboai-treeish}}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
linux-builds:
|
||||||
|
runs-on: "ubuntu-20.04"
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Editor (x86_64, release)
|
||||||
|
target: editor
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
- name: Template (x86_64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
- name: Template (x86_64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
# - name: Editor (x86_32, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: x86_32
|
||||||
|
# build-mono: false
|
||||||
|
|
||||||
|
- name: Template (x86_32, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_32
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
- name: Template (x86_32, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_32
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
- name: Editor .NET (x86_64, release)
|
||||||
|
target: editor
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
- name: Template .NET (x86_64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
- name: Template .NET (x86_64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
# - name: Editor .NET (x86_32, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: x86_32
|
||||||
|
# build-mono: true
|
||||||
|
|
||||||
|
- name: Template .NET (x86_32, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_32
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
- name: Template .NET (x86_32, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_32
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
BIN: godot.linuxbsd.${{matrix.target}}.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Dump environment
|
||||||
|
env:
|
||||||
|
ENVI: ${{ toJson(env) }}
|
||||||
|
run: |
|
||||||
|
echo "$ENVI"
|
||||||
|
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Clone LimboAI module
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: modules/limboai
|
||||||
|
ref: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
# About sed see: https://github.com/godotengine/buildroot/issues/6
|
||||||
|
- name: Set up buildroot x86_64
|
||||||
|
if: matrix.arch == 'x86_64'
|
||||||
|
run: |
|
||||||
|
wget https://download.tuxfamily.org/godotengine/toolchains/linux/x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2
|
||||||
|
tar -xjf x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2
|
||||||
|
mv x86_64-godot-linux-gnu_sdk-buildroot buildroot
|
||||||
|
cd buildroot
|
||||||
|
sed -i x86_64-godot-linux-gnu/sysroot/usr/lib/pkgconfig/dbus-1.pc -e "s@/lib@/lib64@g"
|
||||||
|
./relocate-sdk.sh
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Set up buildroot x86_32
|
||||||
|
if: matrix.arch == 'x86_32'
|
||||||
|
run: |
|
||||||
|
wget https://download.tuxfamily.org/godotengine/toolchains/linux/i686-godot-linux-gnu_sdk-buildroot.tar.bz2
|
||||||
|
tar -xjf i686-godot-linux-gnu_sdk-buildroot.tar.bz2
|
||||||
|
mv i686-godot-linux-gnu_sdk-buildroot buildroot
|
||||||
|
cd buildroot
|
||||||
|
./relocate-sdk.sh
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Set up scons cache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{github.workspace}}/.scons_cache/
|
||||||
|
key: ${{matrix.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
restore-keys: |
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}
|
||||||
|
|
||||||
|
- name: Compilation
|
||||||
|
env:
|
||||||
|
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
||||||
|
run: |
|
||||||
|
PATH=${GITHUB_WORKSPACE}/buildroot/bin:$PATH
|
||||||
|
scons platform=linuxbsd target=${{matrix.target}} arch=${{matrix.arch}} module_mono_enabled=${{matrix.build-mono}} ${{env.SCONSFLAGS}}
|
||||||
|
|
||||||
|
- name: Generate C# glue
|
||||||
|
if: matrix.build-mono && matrix.target == 'editor'
|
||||||
|
run: |
|
||||||
|
./bin/$BIN --headless --generate-mono-glue ./modules/mono/glue || true
|
||||||
|
|
||||||
|
- name: Build .NET solutions
|
||||||
|
if: matrix.build-mono && matrix.target == 'editor'
|
||||||
|
run: |
|
||||||
|
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
|
||||||
|
|
||||||
|
- name: Prepare artifact
|
||||||
|
env:
|
||||||
|
OUTDIR: ${{ startsWith(matrix.target, 'template') && 'out/templates' || 'out/' }}
|
||||||
|
run: |
|
||||||
|
strip ./bin/godot.*
|
||||||
|
chmod +x ./bin/godot.*
|
||||||
|
mkdir -p ${{env.OUTDIR}}
|
||||||
|
mv ./bin/godot.* ${{env.OUTDIR}}
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
env:
|
||||||
|
NAME_EDITOR: ${{env.NAME_PREFIX}}.${{matrix.target}}.linux.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }}
|
||||||
|
NAME_TEMPLATES: ${{env.NAME_PREFIX}}.export-templates${{ matrix.build-mono == true && '.mono' || '' }}
|
||||||
|
with:
|
||||||
|
name: ${{ startsWith(matrix.target, 'template') && env.NAME_TEMPLATES || env.NAME_EDITOR }}
|
||||||
|
path: out/*
|
|
@ -0,0 +1,269 @@
|
||||||
|
name: 🍎 macOS builds
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
|
||||||
|
# Global Settings
|
||||||
|
env:
|
||||||
|
SCONS_CACHE_LIMIT: 4096
|
||||||
|
SCONSFLAGS: production=yes tests=no verbose=yes warnings=extra werror=yes
|
||||||
|
DOTNET_NOLOGO: true
|
||||||
|
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
||||||
|
NAME_PREFIX: godot.${{inputs.godot-treeish}}.limboai+${{inputs.limboai-treeish}}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
macos-builds:
|
||||||
|
runs-on: "macos-latest"
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Editor (x86_64, release)
|
||||||
|
target: editor
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
artifact-name: macos-editor
|
||||||
|
|
||||||
|
- name: Template (x86_64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
artifact-name: macos-templates
|
||||||
|
|
||||||
|
- name: Template (x86_64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
artifact-name: macos-templates
|
||||||
|
|
||||||
|
- name: Editor (arm64, release)
|
||||||
|
target: editor
|
||||||
|
arch: arm64
|
||||||
|
build-mono: false
|
||||||
|
artifact-name: macos-editor
|
||||||
|
|
||||||
|
- name: Template (arm64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: arm64
|
||||||
|
build-mono: false
|
||||||
|
artifact-name: macos-templates
|
||||||
|
|
||||||
|
- name: Template (arm64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: arm64
|
||||||
|
build-mono: false
|
||||||
|
artifact-name: macos-templates
|
||||||
|
|
||||||
|
# ! Disabled for now: .NET version fail to build
|
||||||
|
|
||||||
|
# - name: .NET Editor (x86_64, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: x86_64
|
||||||
|
# build-mono: true
|
||||||
|
# artifact-name: macos-mono-editor
|
||||||
|
# cache-name: macos-editor
|
||||||
|
|
||||||
|
# - name: .NET Template (x86_64, release)
|
||||||
|
# target: template_release
|
||||||
|
# arch: x86_64
|
||||||
|
# build-mono: true
|
||||||
|
# artifact-name: macos-mono-templates
|
||||||
|
|
||||||
|
# - name: .NET Template (x86_64, debug)
|
||||||
|
# target: template_debug
|
||||||
|
# arch: x86_64
|
||||||
|
# build-mono: true
|
||||||
|
# artifact-name: macos-mono-templates
|
||||||
|
|
||||||
|
# - name: .NET Editor (arm64, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: arm64
|
||||||
|
# build-mono: true
|
||||||
|
# artifact-name: macos-mono-editor
|
||||||
|
# cache-name: macos-editor
|
||||||
|
|
||||||
|
# - name: .NET Template (arm64, release)
|
||||||
|
# target: template_release
|
||||||
|
# arch: arm64
|
||||||
|
# build-mono: true
|
||||||
|
# artifact-name: macos-mono-templates
|
||||||
|
|
||||||
|
# - name: .NET Template (arm64, debug)
|
||||||
|
# target: template_debug
|
||||||
|
# arch: arm64
|
||||||
|
# build-mono: true
|
||||||
|
# artifact-name: macos-mono-templates
|
||||||
|
|
||||||
|
env:
|
||||||
|
BIN: godot.macos.${{matrix.target}}.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Clone LimboAI module
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: modules/limboai
|
||||||
|
ref: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
- name: Set up Python 3.x
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
architecture: 'x64'
|
||||||
|
|
||||||
|
- name: Set up scons
|
||||||
|
run: |
|
||||||
|
python -c "import sys; print(sys.version)"
|
||||||
|
python -m pip install scons==4.4.0
|
||||||
|
|
||||||
|
- name: Diagnostics
|
||||||
|
run: |
|
||||||
|
python --version
|
||||||
|
scons --version
|
||||||
|
dotnet --info
|
||||||
|
|
||||||
|
- name: Set up Vulkan SDK
|
||||||
|
run: |
|
||||||
|
sh misc/scripts/install_vulkan_sdk_macos.sh
|
||||||
|
|
||||||
|
- name: Set up scons cache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{github.workspace}}/.scons_cache/
|
||||||
|
key: ${{matrix.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
restore-keys: |
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}
|
||||||
|
|
||||||
|
- name: Compilation
|
||||||
|
env:
|
||||||
|
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
||||||
|
run: |
|
||||||
|
scons -j2 platform=macos target=${{matrix.target}} arch=${{matrix.arch}} module_mono_enabled=${{matrix.build-mono}} ${{env.SCONSFLAGS}}
|
||||||
|
|
||||||
|
# ! Disabled for now: .NET version fail to build
|
||||||
|
|
||||||
|
# - name: Generate C# glue
|
||||||
|
# if: matrix.build-mono && matrix.target == 'editor'
|
||||||
|
# run: |
|
||||||
|
# ./bin/$BIN --headless --generate-mono-glue ./modules/mono/glue || true
|
||||||
|
|
||||||
|
# - name: Build .NET solutions
|
||||||
|
# if: matrix.build-mono && matrix.target == 'editor'
|
||||||
|
# run: |
|
||||||
|
# ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=macos
|
||||||
|
|
||||||
|
- name: Prepare artifact
|
||||||
|
run: |
|
||||||
|
strip bin/godot.*
|
||||||
|
chmod +x bin/godot.*
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.artifact-name }}
|
||||||
|
path: bin/*
|
||||||
|
|
||||||
|
make-macos-bundle:
|
||||||
|
runs-on: "macos-latest"
|
||||||
|
name: Make macOS Bundles
|
||||||
|
needs: macos-builds
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Download editor artifact
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: macos-editor
|
||||||
|
path: bin/
|
||||||
|
|
||||||
|
- name: Make editor bundle
|
||||||
|
run: |
|
||||||
|
ls bin/
|
||||||
|
lipo -create bin/godot.macos.editor.x86_64 bin/godot.macos.editor.arm64 -output bin/godot.macos.editor.universal
|
||||||
|
strip bin/godot.macos.editor.universal
|
||||||
|
rm bin/godot.macos.editor.{x86_64,arm64}
|
||||||
|
mkdir -p out/editor/
|
||||||
|
cp -r misc/dist/macos_tools.app out/editor/Godot.app
|
||||||
|
mkdir -p out/editor/Godot.app/Contents/MacOS
|
||||||
|
cp bin/godot.macos.editor.universal out/editor/Godot.app/Contents/MacOS/Godot
|
||||||
|
chmod +x out/editor/Godot.app/Contents/MacOS/Godot
|
||||||
|
ls out/editor/
|
||||||
|
|
||||||
|
- name: Upload editor bundle
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{env.NAME_PREFIX}}.editor.macos.universal
|
||||||
|
path: out/editor/*
|
||||||
|
|
||||||
|
- name: Download templates artifact
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: macos-templates
|
||||||
|
path: bin/
|
||||||
|
|
||||||
|
- name: Make templates bundle
|
||||||
|
run: |
|
||||||
|
rm -rf out/
|
||||||
|
ls bin/
|
||||||
|
lipo -create bin/godot.macos.template_release.x86_64 bin/godot.macos.template_release.arm64 -output bin/godot.macos.template_release.universal
|
||||||
|
lipo -create bin/godot.macos.template_debug.x86_64 bin/godot.macos.template_debug.arm64 -output bin/godot.macos.template_debug.universal
|
||||||
|
rm bin/godot.macos.template_{debug,release}.{x86_64,arm64}
|
||||||
|
strip bin/godot.*
|
||||||
|
cp -r misc/dist/macos_template.app macos_template.app
|
||||||
|
mkdir -p macos_template.app/Contents/MacOS
|
||||||
|
cp bin/godot.macos.template_debug.universal macos_template.app/Contents/MacOS/godot_macos_debug.universal
|
||||||
|
cp bin/godot.macos.template_release.universal macos_template.app/Contents/MacOS/godot_macos_release.universal
|
||||||
|
chmod +x macos_template.app/Contents/MacOS/godot_macos_{release,debug}.universal
|
||||||
|
zip -r macos.zip macos_template.app
|
||||||
|
rm bin/*
|
||||||
|
mkdir -p out/templates/
|
||||||
|
mv macos.zip out/templates/macos.zip
|
||||||
|
ls out/templates/
|
||||||
|
|
||||||
|
- uses: geekyeggo/delete-artifact@v2
|
||||||
|
with:
|
||||||
|
name: macos-*
|
||||||
|
useGlob: true
|
||||||
|
failOnError: false
|
||||||
|
|
||||||
|
- name: Upload templates bundle
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{env.NAME_PREFIX}}.export-templates
|
||||||
|
path: out/*
|
|
@ -0,0 +1,55 @@
|
||||||
|
name: 🔗 All Builds
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
android-build:
|
||||||
|
name: 🤖 Android
|
||||||
|
uses: ./.github/workflows/android.yml
|
||||||
|
with:
|
||||||
|
godot-treeish: ${{ inputs.godot-treeish }}
|
||||||
|
limboai-treeish: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
ios-build:
|
||||||
|
name: 🍏 iOS
|
||||||
|
uses: ./.github/workflows/ios.yml
|
||||||
|
with:
|
||||||
|
godot-treeish: ${{ inputs.godot-treeish }}
|
||||||
|
limboai-treeish: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
linux-build:
|
||||||
|
name: 🐧 Linux
|
||||||
|
uses: ./.github/workflows/linux.yml
|
||||||
|
with:
|
||||||
|
godot-treeish: ${{ inputs.godot-treeish }}
|
||||||
|
limboai-treeish: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
macos-build:
|
||||||
|
name: 🍎 macOS
|
||||||
|
uses: ./.github/workflows/macos.yml
|
||||||
|
with:
|
||||||
|
godot-treeish: ${{ inputs.godot-treeish }}
|
||||||
|
limboai-treeish: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
windows-build:
|
||||||
|
name: 🪟 Windows
|
||||||
|
uses: ./.github/workflows/windows.yml
|
||||||
|
with:
|
||||||
|
godot-treeish: ${{ inputs.godot-treeish }}
|
||||||
|
limboai-treeish: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
web-build:
|
||||||
|
name: 🌐 Web
|
||||||
|
uses: ./.github/workflows/web.yml
|
||||||
|
with:
|
||||||
|
godot-treeish: ${{ inputs.godot-treeish }}
|
||||||
|
limboai-treeish: ${{ inputs.limboai-treeish }}
|
|
@ -0,0 +1,120 @@
|
||||||
|
name: 🌐 Web builds
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
# Global Settings
|
||||||
|
env:
|
||||||
|
SCONS_CACHE_LIMIT: 4096
|
||||||
|
# With `lto=full` VM seems to run out of ram and build fails
|
||||||
|
SCONSFLAGS: use_static_cpp=yes debug_symbols=no lto=thin optimize=size verbose=yes warnings=extra werror=yes tests=no
|
||||||
|
EM_VERSION: 3.1.18
|
||||||
|
EM_CACHE_FOLDER: "emsdk-cache"
|
||||||
|
NAME_PREFIX: godot.${{inputs.godot-treeish}}.limboai+${{inputs.limboai-treeish}}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
web-builds:
|
||||||
|
runs-on: "ubuntu-20.04"
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Template (release)
|
||||||
|
target: template_release
|
||||||
|
dlink_enabled: no
|
||||||
|
|
||||||
|
- name: Template (release, dlink_enabled=true)
|
||||||
|
target: template_release
|
||||||
|
dlink_enabled: yes
|
||||||
|
|
||||||
|
- name: Template (debug)
|
||||||
|
target: template_debug
|
||||||
|
dlink_enabled: no
|
||||||
|
|
||||||
|
- name: Template (debug, dlink_enabled=true)
|
||||||
|
target: template_debug
|
||||||
|
dlink_enabled: yes
|
||||||
|
|
||||||
|
env:
|
||||||
|
CACHE_NAME: godot.web.${{matrix.target}}${{ matrix.dlink_enabled == true && '.dlink' || '' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Clone LimboAI module
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: modules/limboai
|
||||||
|
ref: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
- name: Set up Emscripten latest
|
||||||
|
uses: mymindstorm/setup-emsdk@v12
|
||||||
|
with:
|
||||||
|
version: ${{env.EM_VERSION}}
|
||||||
|
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
|
||||||
|
|
||||||
|
- name: Verify Emscripten setup
|
||||||
|
run: |
|
||||||
|
emcc -v
|
||||||
|
|
||||||
|
- name: Set up scons
|
||||||
|
run: |
|
||||||
|
python -c "import sys; print(sys.version)"
|
||||||
|
python -m pip install scons==4.4.0
|
||||||
|
python --version
|
||||||
|
scons --version
|
||||||
|
|
||||||
|
- name: Set up scons cache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{github.workspace}}/.scons_cache/
|
||||||
|
key: ${{matrix.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
restore-keys: |
|
||||||
|
${{env.CACHE_NAME}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
${{env.CACHE_NAME}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||||
|
${{env.CACHE_NAME}}-${{env.GODOT_BASE_BRANCH}}
|
||||||
|
|
||||||
|
- name: Compilation
|
||||||
|
env:
|
||||||
|
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
||||||
|
run: |
|
||||||
|
scons platform=web target=${{matrix.target}} dlink_enabled=${{matrix.dlink_enabled}} ${{env.SCONSFLAGS}}
|
||||||
|
|
||||||
|
- name: Prepare artifacts
|
||||||
|
run: |
|
||||||
|
mkdir -p out/templates/
|
||||||
|
mv bin/godot.web.template_release.wasm32.zip out/templates/web_release.zip || true
|
||||||
|
mv bin/godot.web.template_release.wasm32.dlink.zip out/templates/web_dlink_release.zip || true
|
||||||
|
mv bin/godot.web.template_debug.wasm32.zip out/templates/web_debug.zip || true
|
||||||
|
mv bin/godot.web.template_debug.wasm32.dlink.zip out/templates/web_dlink_debug.zip || true
|
||||||
|
rm -rf bin/
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{env.NAME_PREFIX}}.export-templates
|
||||||
|
path: out/*
|
|
@ -0,0 +1,176 @@
|
||||||
|
name: 🪟 Windows builds
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
godot-treeish:
|
||||||
|
description: A tag, branch or commit hash in the Godot repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
limboai-treeish:
|
||||||
|
description: A tag, branch or commit hash in the LimboAI repository.
|
||||||
|
type: string
|
||||||
|
default: master
|
||||||
|
|
||||||
|
# Global Settings
|
||||||
|
env:
|
||||||
|
SCONS_CACHE_MSVC_CONFIG: true
|
||||||
|
SCONS_CACHE_LIMIT: 4096
|
||||||
|
SCONSFLAGS: production=yes tests=no verbose=yes warnings=extra werror=yes
|
||||||
|
DOTNET_NOLOGO: true
|
||||||
|
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
||||||
|
NAME_PREFIX: godot.${{inputs.godot-treeish}}.limboai+${{inputs.limboai-treeish}}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
windows-builds:
|
||||||
|
runs-on: "windows-latest"
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Editor (x86_64, release)
|
||||||
|
target: editor
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
- name: Template (x86_64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
- name: Template (x86_64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
# - name: Editor (x86_32, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: x86_32
|
||||||
|
# build-mono: false
|
||||||
|
|
||||||
|
- name: Template (x86_32, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_32
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
- name: Template (x86_32, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_32
|
||||||
|
build-mono: false
|
||||||
|
|
||||||
|
- name: Editor .NET (x86_64, release)
|
||||||
|
target: editor
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
- name: Template .NET (x86_64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
- name: Template .NET (x86_64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
# - name: Editor .NET (x86_32, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: x86_32
|
||||||
|
# build-mono: true
|
||||||
|
|
||||||
|
- name: Template .NET (x86_32, release)
|
||||||
|
target: template_release
|
||||||
|
arch: x86_64
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
- name: Template .NET (x86_32, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: x86_32
|
||||||
|
build-mono: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
BIN: godot.windows.${{matrix.target}}.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Clone Godot
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: godotengine/godot
|
||||||
|
ref: ${{ inputs.godot-treeish }}
|
||||||
|
|
||||||
|
- name: Clone LimboAI module
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: modules/limboai
|
||||||
|
ref: ${{ inputs.limboai-treeish }}
|
||||||
|
|
||||||
|
- name: Set up Python 3.x
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
architecture: 'x64'
|
||||||
|
|
||||||
|
- name: Set up scons
|
||||||
|
run: |
|
||||||
|
python -c "import sys; print(sys.version)"
|
||||||
|
python -m pip install scons==4.4.0
|
||||||
|
python --version
|
||||||
|
scons --version
|
||||||
|
|
||||||
|
- name: Set up MSVC problem matcher
|
||||||
|
uses: ammaraskar/msvc-problem-matcher@master
|
||||||
|
|
||||||
|
- name: Set up scons cache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ${{github.workspace}}/.scons_cache/
|
||||||
|
key: ${{matrix.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
restore-keys: |
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
||||||
|
${{env.BIN}}-${{env.GODOT_BASE_BRANCH}}
|
||||||
|
|
||||||
|
- name: Compilation
|
||||||
|
env:
|
||||||
|
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
||||||
|
run: |
|
||||||
|
scons -j2 platform=windows target=${{matrix.target}} arch=${{matrix.arch}} module_mono_enabled=${{matrix.build-mono}} ${{env.SCONSFLAGS}}
|
||||||
|
|
||||||
|
- name: Generate C# glue
|
||||||
|
if: matrix.build-mono && matrix.target == 'editor'
|
||||||
|
run: |
|
||||||
|
./bin/${{ env.BIN }} --headless --generate-mono-glue ./modules/mono/glue || true
|
||||||
|
|
||||||
|
- name: Build .NET solutions
|
||||||
|
if: matrix.build-mono && matrix.target == 'editor'
|
||||||
|
run: |
|
||||||
|
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=windows
|
||||||
|
|
||||||
|
- name: Prepare artifact
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
OUTDIR: ${{ startsWith(matrix.target, 'template') && 'out/templates' || 'out/' }}
|
||||||
|
run: |
|
||||||
|
rm -f bin/*.{exp,lib,pdb}
|
||||||
|
mkdir -p out/templates/
|
||||||
|
mv bin/* ${{env.OUTDIR}}
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
env:
|
||||||
|
NAME_EDITOR: ${{env.NAME_PREFIX}}.${{matrix.target}}.windows.${{matrix.arch}}${{ matrix.build-mono == true && '.mono' || '' }}
|
||||||
|
NAME_TEMPLATES: ${{env.NAME_PREFIX}}.export-templates${{ matrix.build-mono == true && '.mono' || '' }}
|
||||||
|
with:
|
||||||
|
name: ${{ startsWith(matrix.target, 'template') && env.NAME_TEMPLATES || env.NAME_EDITOR }}
|
||||||
|
path: out/*
|
Loading…
Reference in New Issue