Merge pull request #174 from limbonaut/gha-arm-builds
GHA: Add Linux & Windows ARM64 builds
This commit is contained in:
commit
d7daa027ee
|
@ -15,6 +15,11 @@ runs:
|
||||||
TOOLCHAIN_64_SHA=16c8302fcb676c1f0fb9df73d6cff250ba1f4286
|
TOOLCHAIN_64_SHA=16c8302fcb676c1f0fb9df73d6cff250ba1f4286
|
||||||
TOOLCHAIN_32_URL=https://github.com/godotengine/buildroot/releases/download/godot-2020.11.x-2/i686-godot-linux-gnu_sdk-buildroot.tar.bz2
|
TOOLCHAIN_32_URL=https://github.com/godotengine/buildroot/releases/download/godot-2020.11.x-2/i686-godot-linux-gnu_sdk-buildroot.tar.bz2
|
||||||
TOOLCHAIN_32_SHA=6171652abc54ef219e5187bc53660ee4e2f796f4
|
TOOLCHAIN_32_SHA=6171652abc54ef219e5187bc53660ee4e2f796f4
|
||||||
|
TOOLCHAIN_ARM64_URL=https://github.com/godotengine/buildroot/releases/download/godot-2023.08.x-3/aarch64-godot-linux-gnu_sdk-buildroot.tar.bz2
|
||||||
|
TOOLCHAIN_ARM64_SHA=73bed3d26b92c8b9a93c0ceb6bcce8fe567d1764
|
||||||
|
TOOLCHAIN_ARM32_URL=https://github.com/godotengine/buildroot/releases/download/godot-2023.08.x-3/arm-godot-linux-gnueabihf_sdk-buildroot.tar.bz2
|
||||||
|
TOOLCHAIN_ARM32_SHA=aa5853fd73faec3837c6127649471275d7e61cb2
|
||||||
|
|
||||||
# ! Export variables:
|
# ! Export variables:
|
||||||
if [[ "${{ inputs.arch }}" == "x86_64" ]]; then
|
if [[ "${{ inputs.arch }}" == "x86_64" ]]; then
|
||||||
echo "TOOLCHAIN_URL=${TOOLCHAIN_64_URL}" >> "$GITHUB_ENV"
|
echo "TOOLCHAIN_URL=${TOOLCHAIN_64_URL}" >> "$GITHUB_ENV"
|
||||||
|
@ -22,6 +27,12 @@ runs:
|
||||||
elif [[ "${{ inputs.arch }}" == "x86_32" ]]; then
|
elif [[ "${{ inputs.arch }}" == "x86_32" ]]; then
|
||||||
echo "TOOLCHAIN_URL=${TOOLCHAIN_32_URL}" >> "$GITHUB_ENV"
|
echo "TOOLCHAIN_URL=${TOOLCHAIN_32_URL}" >> "$GITHUB_ENV"
|
||||||
echo "TOOLCHAIN_SHA=${TOOLCHAIN_32_SHA}" >> "$GITHUB_ENV"
|
echo "TOOLCHAIN_SHA=${TOOLCHAIN_32_SHA}" >> "$GITHUB_ENV"
|
||||||
|
elif [[ "${{ inputs.arch }}" == "arm64" ]]; then
|
||||||
|
echo "TOOLCHAIN_URL=${TOOLCHAIN_ARM64_URL}" >> "$GITHUB_ENV"
|
||||||
|
echo "TOOLCHAIN_SHA=${TOOLCHAIN_ARM64_SHA}" >> "$GITHUB_ENV"
|
||||||
|
elif [[ "${{ inputs.arch }}" == "arm32" ]]; then
|
||||||
|
echo "TOOLCHAIN_URL=${TOOLCHAIN_ARM32_URL}" >> "$GITHUB_ENV"
|
||||||
|
echo "TOOLCHAIN_SHA=${TOOLCHAIN_ARM32_SHA}" >> "$GITHUB_ENV"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Cache buildroot
|
- name: Cache buildroot
|
||||||
|
|
|
@ -287,19 +287,6 @@ jobs:
|
||||||
echo "---"
|
echo "---"
|
||||||
ls -R out/
|
ls -R out/
|
||||||
|
|
||||||
- name: Strip lib
|
|
||||||
if: matrix.opts.platform != 'windows' && matrix.opts.platform != 'web' && (matrix.opts.platform != 'android' || startsWith(matrix.opts.arch, 'x86'))
|
|
||||||
run: |
|
|
||||||
ls -l -R out/addons/limboai/bin/
|
|
||||||
echo "---"
|
|
||||||
if [ "$RUNNER_OS" == "macOS" ]; then
|
|
||||||
strip -u out/addons/limboai/bin/liblimboai*/liblimboai*
|
|
||||||
else
|
|
||||||
strip out/addons/limboai/bin/liblimboai*
|
|
||||||
fi
|
|
||||||
echo "---"
|
|
||||||
ls -l -R out/addons/limboai/bin/
|
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
env:
|
env:
|
||||||
|
|
|
@ -170,9 +170,6 @@ jobs:
|
||||||
cp -r misc/dist/ios_xcode bin/
|
cp -r misc/dist/ios_xcode bin/
|
||||||
cd bin/
|
cd bin/
|
||||||
|
|
||||||
# --- Note: Doesn't look like libs need stripping ---
|
|
||||||
# strip *.a
|
|
||||||
|
|
||||||
mv libgodot.ios.template_debug.arm64.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.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
|
# ! 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_debug.x86_64.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
||||||
|
|
|
@ -45,6 +45,8 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
opts:
|
opts:
|
||||||
|
# * Standard x86_64
|
||||||
|
|
||||||
- name: Editor (x86_64, release)
|
- name: Editor (x86_64, release)
|
||||||
target: editor
|
target: editor
|
||||||
arch: x86_64
|
arch: x86_64
|
||||||
|
@ -63,6 +65,8 @@ jobs:
|
||||||
dotnet: false
|
dotnet: false
|
||||||
should-build: ${{ !inputs.test-build }}
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * Standard x86_32
|
||||||
|
|
||||||
# - name: Editor (x86_32, release)
|
# - name: Editor (x86_32, release)
|
||||||
# target: editor
|
# target: editor
|
||||||
# arch: x86_32
|
# arch: x86_32
|
||||||
|
@ -81,6 +85,42 @@ jobs:
|
||||||
dotnet: false
|
dotnet: false
|
||||||
should-build: ${{ !inputs.test-build }}
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * Standard arm64
|
||||||
|
|
||||||
|
- name: Editor (arm64, release)
|
||||||
|
target: editor
|
||||||
|
arch: arm64
|
||||||
|
dotnet: false
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template (arm64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: arm64
|
||||||
|
dotnet: false
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template (arm64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: arm64
|
||||||
|
dotnet: false
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * Standard arm32
|
||||||
|
|
||||||
|
- name: Template (arm32, release)
|
||||||
|
target: template_release
|
||||||
|
arch: arm32
|
||||||
|
dotnet: false
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template (arm32, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: arm32
|
||||||
|
dotnet: false
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * .NET x86_64
|
||||||
|
|
||||||
- name: Editor .NET (x86_64, release)
|
- name: Editor .NET (x86_64, release)
|
||||||
target: editor
|
target: editor
|
||||||
arch: x86_64
|
arch: x86_64
|
||||||
|
@ -99,6 +139,8 @@ jobs:
|
||||||
dotnet: true
|
dotnet: true
|
||||||
should-build: ${{ !inputs.test-build }}
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * .NET x86_32
|
||||||
|
|
||||||
# - name: Editor .NET (x86_32, release)
|
# - name: Editor .NET (x86_32, release)
|
||||||
# target: editor
|
# target: editor
|
||||||
# arch: x86_32
|
# arch: x86_32
|
||||||
|
@ -117,6 +159,42 @@ jobs:
|
||||||
dotnet: true
|
dotnet: true
|
||||||
should-build: ${{ !inputs.test-build }}
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * .NET arm64
|
||||||
|
|
||||||
|
# ! FIXME: Needs a separate job for .NET glue generation since we can't execute arm64 binaries on x86_64.
|
||||||
|
# ! Alternatively, solution generation can be done as post-process job, taking the glue from x86_64, after all builds complete.
|
||||||
|
# - name: Editor .NET (arm64, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: arm64
|
||||||
|
# dotnet: true
|
||||||
|
# should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template .NET (arm64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: arm64
|
||||||
|
dotnet: true
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template .NET (arm64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: arm64
|
||||||
|
dotnet: true
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * .NET arm32
|
||||||
|
|
||||||
|
- name: Template .NET (arm32, release)
|
||||||
|
target: template_release
|
||||||
|
arch: arm32
|
||||||
|
dotnet: true
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template .NET (arm32, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: arm32
|
||||||
|
dotnet: true
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
exclude:
|
exclude:
|
||||||
- { opts: { should-build: false } }
|
- { opts: { should-build: false } }
|
||||||
|
|
||||||
|
@ -183,7 +261,6 @@ jobs:
|
||||||
env:
|
env:
|
||||||
OUTDIR: ${{ startsWith(matrix.opts.target, 'template') && 'out/templates' || 'out/' }}
|
OUTDIR: ${{ startsWith(matrix.opts.target, 'template') && 'out/templates' || 'out/' }}
|
||||||
run: |
|
run: |
|
||||||
strip ./bin/godot.*
|
|
||||||
chmod +x ./bin/godot.*
|
chmod +x ./bin/godot.*
|
||||||
mkdir -p ${{env.OUTDIR}}
|
mkdir -p ${{env.OUTDIR}}
|
||||||
mv bin/* ${{env.OUTDIR}}
|
mv bin/* ${{env.OUTDIR}}
|
||||||
|
|
|
@ -199,7 +199,6 @@ jobs:
|
||||||
|
|
||||||
- name: Prepare artifact
|
- name: Prepare artifact
|
||||||
run: |
|
run: |
|
||||||
strip bin/godot.*
|
|
||||||
chmod +x bin/godot.*
|
chmod +x bin/godot.*
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
|
@ -257,9 +256,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
ls bin/
|
ls bin/
|
||||||
lipo -create bin/godot.macos.editor.x86_64* bin/godot.macos.editor.arm64* -output bin/godot.macos.editor.universal
|
lipo -create bin/godot.macos.editor.x86_64* bin/godot.macos.editor.arm64* -output bin/godot.macos.editor.universal
|
||||||
du -sh bin/
|
|
||||||
strip bin/godot.macos.editor.universal
|
|
||||||
du -sh bin/
|
|
||||||
mkdir -p out/editor/
|
mkdir -p out/editor/
|
||||||
cp -r misc/dist/macos_tools.app out/editor/${APP_NAME}
|
cp -r misc/dist/macos_tools.app out/editor/${APP_NAME}
|
||||||
mkdir -p out/editor/${APP_NAME}/Contents/{MacOS,Resources}
|
mkdir -p out/editor/${APP_NAME}/Contents/{MacOS,Resources}
|
||||||
|
@ -295,7 +291,6 @@ jobs:
|
||||||
ls bin/
|
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_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
|
lipo -create bin/godot.macos.template_debug.x86_64* bin/godot.macos.template_debug.arm64* -output bin/godot.macos.template_debug.universal
|
||||||
strip bin/godot.*.universal
|
|
||||||
cp -r misc/dist/macos_template.app macos_template.app
|
cp -r misc/dist/macos_template.app macos_template.app
|
||||||
mkdir -p macos_template.app/Contents/MacOS
|
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_debug.universal macos_template.app/Contents/MacOS/godot_macos_debug.universal
|
||||||
|
|
|
@ -46,6 +46,8 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
opts:
|
opts:
|
||||||
|
# * Standard x86_64
|
||||||
|
|
||||||
- name: Editor (x86_64, release)
|
- name: Editor (x86_64, release)
|
||||||
target: editor
|
target: editor
|
||||||
arch: x86_64
|
arch: x86_64
|
||||||
|
@ -64,6 +66,8 @@ jobs:
|
||||||
dotnet: false
|
dotnet: false
|
||||||
should-build: ${{ !inputs.test-build }}
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * Standard x86_32
|
||||||
|
|
||||||
# - name: Editor (x86_32, release)
|
# - name: Editor (x86_32, release)
|
||||||
# target: editor
|
# target: editor
|
||||||
# arch: x86_32
|
# arch: x86_32
|
||||||
|
@ -82,6 +86,28 @@ jobs:
|
||||||
dotnet: false
|
dotnet: false
|
||||||
should-build: ${{ !inputs.test-build }}
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * Standard arm64
|
||||||
|
|
||||||
|
# - name: Editor (arm64, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: arm64
|
||||||
|
# dotnet: false
|
||||||
|
# should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template (arm64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: arm64
|
||||||
|
dotnet: false
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template (arm64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: arm64
|
||||||
|
dotnet: false
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * .NET x86_64
|
||||||
|
|
||||||
- name: Editor .NET (x86_64, release)
|
- name: Editor .NET (x86_64, release)
|
||||||
target: editor
|
target: editor
|
||||||
arch: x86_64
|
arch: x86_64
|
||||||
|
@ -100,6 +126,8 @@ jobs:
|
||||||
dotnet: true
|
dotnet: true
|
||||||
should-build: ${{ !inputs.test-build }}
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * .NET x86_32
|
||||||
|
|
||||||
# - name: Editor .NET (x86_32, release)
|
# - name: Editor .NET (x86_32, release)
|
||||||
# target: editor
|
# target: editor
|
||||||
# arch: x86_32
|
# arch: x86_32
|
||||||
|
@ -118,6 +146,26 @@ jobs:
|
||||||
dotnet: true
|
dotnet: true
|
||||||
should-build: ${{ !inputs.test-build }}
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
# * .NET arm64
|
||||||
|
|
||||||
|
# - name: Editor (arm64, release)
|
||||||
|
# target: editor
|
||||||
|
# arch: arm64
|
||||||
|
# dotnet: true
|
||||||
|
# should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template (arm64, release)
|
||||||
|
target: template_release
|
||||||
|
arch: arm64
|
||||||
|
dotnet: true
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
|
- name: Template (arm64, debug)
|
||||||
|
target: template_debug
|
||||||
|
arch: arm64
|
||||||
|
dotnet: true
|
||||||
|
should-build: ${{ !inputs.test-build }}
|
||||||
|
|
||||||
exclude:
|
exclude:
|
||||||
- { opts: { should-build: false } }
|
- { opts: { should-build: false } }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue