Skip to content

Commit fd96071

Browse files
committed
DRAFT: Add an aarch64-msvc build running on ARM64 Windows
1 parent 0285dab commit fd96071

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

.github/workflows/ci.yml

+9-4
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,23 @@ jobs:
8181
include: ${{ fromJSON(needs.calculate_matrix.outputs.jobs) }}
8282
steps:
8383
- if: contains(matrix.os, 'windows')
84-
uses: msys2/setup-msys2@v2.22.0
84+
uses: msys2/setup-msys2@v2.23.0
8585
with:
86-
# i686 jobs use mingw32. x86_64 and cross-compile jobs use mingw64.
87-
msystem: ${{ contains(matrix.name, 'i686') && 'mingw32' || 'mingw64' }}
86+
# i686 jobs use mingw32.
87+
# aarch64 runners use clangarm64.
88+
# x86_64 and cross-compile jobs use mingw64.
89+
msystem: ${{ contains(matrix.name, 'i686') && 'mingw32' || contains(matrix.os, 'arm64') && 'clangarm64' || 'mingw64' }}
8890
# don't try to download updates for already installed packages
8991
update: false
9092
# don't try to use the msys that comes built-in to the github runner,
9193
# so we can control what is installed (i.e. not python)
92-
release: true
94+
release: ${{ !contains(matrix.os, 'arm64') }}
9395
# Inherit the full path from the Windows environment, with MSYS2's */bin/
9496
# dirs placed in front. This lets us run Windows-native Python etc.
9597
path-type: inherit
98+
# Workaround for https://github.com/msys2/setup-msys2/issues/358
99+
# MSYS2 installer hangs on ARM64 Windows if caching is enabled.
100+
cache: ${{ !contains(matrix.os, 'arm64') }}
96101
install: >
97102
make
98103
dos2unix

src/ci/github-actions/jobs.yml

+8-10
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ runners:
3232
os: windows-2022-16core-64gb
3333
<<: *base-job
3434

35+
- &job-windows-aarch64
36+
os: windows-11-arm64-8core-32gb
37+
<<: *base-job
38+
3539
- &job-aarch64-linux
3640
os: ubuntu-22.04-arm64-8core-32gb
3741

@@ -80,17 +84,11 @@ envs:
8084
# These jobs automatically inherit envs.pr, to avoid repeating
8185
# it in each job definition.
8286
pr:
83-
- image: mingw-check
84-
<<: *job-linux-4c
85-
- image: mingw-check-tidy
86-
continue_on_error: true
87-
<<: *job-linux-4c
88-
- image: x86_64-gnu-llvm-17
87+
- image: aarch64-msvc
8988
env:
90-
ENABLE_GCC_CODEGEN: "1"
91-
<<: *job-linux-16c
92-
- image: x86_64-gnu-tools
93-
<<: *job-linux-16c
89+
RUST_CONFIGURE_ARGS: --build=aarch64-pc-windows-msvc
90+
SCRIPT: make ci-msvc
91+
<<: *job-windows-aarch64
9492

9593
# Jobs that run when you perform a try build (@bors try)
9694
# These jobs automatically inherit envs.try, to avoid repeating

0 commit comments

Comments
 (0)