diff --git a/.github/actions/setup-linux-toolchain/action.yml b/.github/actions/setup-linux-toolchain/action.yml index 3811b27..936414f 100644 --- a/.github/actions/setup-linux-toolchain/action.yml +++ b/.github/actions/setup-linux-toolchain/action.yml @@ -15,6 +15,9 @@ runs: 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_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 + # ! Export variables: if [[ "${{ inputs.arch }}" == "x86_64" ]]; then echo "TOOLCHAIN_URL=${TOOLCHAIN_64_URL}" >> "$GITHUB_ENV" @@ -22,6 +25,9 @@ runs: elif [[ "${{ inputs.arch }}" == "x86_32" ]]; then echo "TOOLCHAIN_URL=${TOOLCHAIN_32_URL}" >> "$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" fi - name: Cache buildroot diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 252269a..87febd2 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -45,6 +45,8 @@ jobs: fail-fast: false matrix: opts: + # * Standard x86_64 + - name: Editor (x86_64, release) target: editor arch: x86_64 @@ -63,6 +65,8 @@ jobs: dotnet: false should-build: ${{ !inputs.test-build }} + # * Standard x86_32 + # - name: Editor (x86_32, release) # target: editor # arch: x86_32 @@ -81,6 +85,28 @@ jobs: dotnet: false 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) target: editor arch: x86_64 @@ -99,6 +125,8 @@ jobs: dotnet: true should-build: ${{ !inputs.test-build }} + # * .NET x86_32 + # - name: Editor .NET (x86_32, release) # target: editor # arch: x86_32 @@ -117,6 +145,26 @@ jobs: dotnet: true should-build: ${{ !inputs.test-build }} + # * .NET arm64 + + - 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 }} + exclude: - { opts: { should-build: false } } @@ -183,7 +231,11 @@ jobs: env: OUTDIR: ${{ startsWith(matrix.opts.target, 'template') && 'out/templates' || 'out/' }} run: | - strip ./bin/godot.* + if [ "${{matrix.opts.arch}}" == "arm64" ]; then + ${GITHUB_WORKSPACE}/buildroot/bin/aarch64-godot-linux-gnu-strip ./bin/godot.* + else + strip ./bin/godot.* + fi chmod +x ./bin/godot.* mkdir -p ${{env.OUTDIR}} mv bin/* ${{env.OUTDIR}} diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 195bc8a..8bdb12c 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -46,6 +46,8 @@ jobs: fail-fast: false matrix: opts: + # * Standard x86_64 + - name: Editor (x86_64, release) target: editor arch: x86_64 @@ -64,6 +66,8 @@ jobs: dotnet: false should-build: ${{ !inputs.test-build }} + # * Standard x86_32 + # - name: Editor (x86_32, release) # target: editor # arch: x86_32 @@ -82,6 +86,28 @@ jobs: dotnet: false 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) target: editor arch: x86_64 @@ -100,6 +126,8 @@ jobs: dotnet: true should-build: ${{ !inputs.test-build }} + # * .NET x86_32 + # - name: Editor .NET (x86_32, release) # target: editor # arch: x86_32 @@ -118,6 +146,26 @@ jobs: dotnet: true 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: - { opts: { should-build: false } }