99
99
# Note: M1 images on Github Actions start from macOS 14
100
100
- [macos-14, macosx_arm64]
101
101
- [windows-2022, win_amd64]
102
+ - [windows-11-arm, win_arm64]
102
103
# TODO: support PyPy?
103
104
python : [["cp310", "3.10"], ["cp311", "3.11"], ["cp312", "3.12"], ["cp313", "3.13"], ["cp313t", "3.13"]]
104
105
include :
@@ -108,6 +109,12 @@ jobs:
108
109
- buildplat : [ubuntu-24.04, pyodide_wasm32]
109
110
python : ["cp312", "3.12"]
110
111
cibw_build_frontend : ' build'
112
+ exclude :
113
+ - buildplat : [windows-11-arm, win_arm64]
114
+ python : ["cp310", "3.10"]
115
+ # BackendUnavailable: Cannot import 'mesonpy'
116
+ - buildplat : [windows-11-arm, win_arm64]
117
+ python : ["cp313t", "3.13"]
111
118
112
119
env :
113
120
IS_PUSH : ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
@@ -118,6 +125,12 @@ jobs:
118
125
with :
119
126
fetch-depth : 0
120
127
128
+ - name : Set up MSVC environment for ARM64
129
+ if : matrix.buildplat[1] == 'win_arm64'
130
+ uses : ilammy/msvc-dev-cmd@v1
131
+ with :
132
+ arch : arm64
133
+
121
134
# TODO: Build wheels from sdist again
122
135
# There's some sort of weird race condition?
123
136
# within Github that makes the sdist be missing files
@@ -155,9 +168,13 @@ jobs:
155
168
env :
156
169
CIBW_BUILD : ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }}
157
170
CIBW_BUILD_FRONTEND : ${{ matrix.cibw_build_frontend || 'pip' }}
158
- CIBW_PLATFORM : ${{ matrix.buildplat[1] == 'pyodide_wasm32' && 'pyodide' || 'auto' }}
171
+ CIBW_PLATFORM : ${{ (matrix.buildplat[1] == 'pyodide_wasm32' && 'pyodide') || (matrix.buildplat[1] == 'win_arm64' && 'windows') || 'auto' }}
172
+ CIBW_ARCHS : ${{ matrix.buildplat[1] == 'win_arm64' && 'ARM64' || 'auto' }}
173
+ CIBW_BEFORE_BUILD_WINDOWS : ' python -m pip install delvewheel'
159
174
160
- - name : Set up Python
175
+ - name : Set up Python for validation/upload (non-ARM64 Windows & other OS)
176
+ # micromamba is not available for ARM64 Windows
177
+ if : matrix.buildplat[1] != 'win_arm64'
161
178
uses : mamba-org/setup-micromamba@v2
162
179
with :
163
180
environment-name : wheel-env
@@ -170,6 +187,12 @@ jobs:
170
187
cache-downloads : true
171
188
cache-environment : true
172
189
190
+ - name : Install wheel for win_arm64
191
+ # installing wheel here because micromamba step was skipped
192
+ if : matrix.buildplat[1] == 'win_arm64'
193
+ shell : bash -el {0}
194
+ run : python -m pip install wheel
195
+
173
196
- name : Validate wheel RECORD
174
197
shell : bash -el {0}
175
198
run : for whl in $(ls wheelhouse); do wheel unpack wheelhouse/$whl -d /tmp; done
0 commit comments