From 930b5398f7a1d23a0cfcd66015b722bda6754fcc Mon Sep 17 00:00:00 2001 From: Matt Borgerson Date: Sat, 28 Dec 2024 18:50:12 -0700 Subject: [PATCH] ci: Enable Windows aarch64 builds --- .github/workflows/build.yml | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e226945185..461c8df6b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,7 +54,7 @@ jobs: path: src.tar.gz Windows: - name: Build for Windows (${{ matrix.configuration }}) on Ubuntu + name: Build for Windows (${{ matrix.arch }}, ${{ matrix.configuration }}) on Ubuntu runs-on: ubuntu-latest needs: Init strategy: @@ -62,10 +62,20 @@ jobs: include: - configuration: Debug build_param: --debug - artifact_name: xemu-win-debug + artifact_name: xemu-win-x86_64-debug + arch: x86_64 - configuration: Release build_param: - artifact_name: xemu-win-release + artifact_name: xemu-win-x86_64-release + arch: x86_64 + - configuration: Debug + build_param: --debug + artifact_name: xemu-win-aarch64-debug + arch: aarch64 + - configuration: Release + build_param: + artifact_name: xemu-win-aarch64-release + arch: aarch64 env: DOCKER_IMAGE_NAME: ghcr.io/xemu-project/xemu-win64-toolchain:sha-8152913 @@ -93,6 +103,8 @@ jobs: -v /tmp/xemu-ccache:/tmp/xemu-ccache \ -e CCACHE_DIR=/tmp/xemu-ccache \ -e CCACHE_MAXSIZE=512M \ + -e CROSSPREFIX=${{ matrix.arch }}-w64-mingw32.static- \ + -e CROSSAR=${{ matrix.arch }}-w64-mingw32.static-ar \ -u $(id -u):$(id -g) \ $DOCKER_IMAGE_NAME \ bash -c "ccache -z; ./build.sh -p win64-cross ${{ matrix.build_param }} && ccache -s" @@ -106,16 +118,20 @@ jobs: # DWARF and update + strip the executable. Re-package the original release # and create symbols package. WindowsPdb: - name: Generate PDB for Windows (${{ matrix.configuration }}) + name: Generate PDB for Windows (${{ matrix.arch }}, ${{ matrix.configuration }}) runs-on: windows-latest needs: Windows strategy: matrix: include: - configuration: Debug - artifact_name: xemu-win-debug + artifact_name: xemu-win-x86_64-debug - configuration: Release - artifact_name: xemu-win-release + artifact_name: xemu-win-x86_64-release + - configuration: Debug + artifact_name: xemu-win-aarch64-debug + - configuration: Release + artifact_name: xemu-win-aarch64-release steps: - name: Download artifacts uses: actions/download-artifact@v4 @@ -350,7 +366,7 @@ jobs: Release: if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v')) runs-on: ubuntu-latest - needs: [Ubuntu, macOSUniversal, WindowsPdb] + needs: [Ubuntu, macOSUniversal, Windows, WindowsPdb] steps: - name: Download artifacts uses: actions/download-artifact@v4 @@ -402,7 +418,7 @@ jobs: PushToPPA: name: Push to PPA Snapshot Branch if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v')) - needs: [Ubuntu, macOSUniversal, WindowsPdb] + needs: [Ubuntu, macOSUniversal, Windows, WindowsPdb] runs-on: ubuntu-latest steps: - name: Download source package