Skip to content

Commit e2bd8e6

Browse files
authored
Wheels for win_arm64 (#61463)
* Update wheels.yml Add win_arm64 * add test workflow * doing another way * trying to fix cibuildwheel * another try * . * . * . * debug path * . * . * . * . * . * . * . * . * . * . * . * test minimal changes * . * delete test file * . * . * revert ubuntu version * test arm build * uncomment platforms * get ubuntu back for manylinux * remove comment * line ending? * Revert "line ending?" This reverts commit f9aa3a6. * execute install delvewheel for all win plats * new line at the end? * addressing comments
1 parent 1321954 commit e2bd8e6

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

.github/workflows/wheels.yml

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ jobs:
9999
# Note: M1 images on Github Actions start from macOS 14
100100
- [macos-14, macosx_arm64]
101101
- [windows-2022, win_amd64]
102+
- [windows-11-arm, win_arm64]
102103
# TODO: support PyPy?
103104
python: [["cp310", "3.10"], ["cp311", "3.11"], ["cp312", "3.12"], ["cp313", "3.13"], ["cp313t", "3.13"]]
104105
include:
@@ -108,6 +109,12 @@ jobs:
108109
- buildplat: [ubuntu-24.04, pyodide_wasm32]
109110
python: ["cp312", "3.12"]
110111
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"]
111118

112119
env:
113120
IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
@@ -118,6 +125,12 @@ jobs:
118125
with:
119126
fetch-depth: 0
120127

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+
121134
# TODO: Build wheels from sdist again
122135
# There's some sort of weird race condition?
123136
# within Github that makes the sdist be missing files
@@ -155,9 +168,13 @@ jobs:
155168
env:
156169
CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }}
157170
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'
159174

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'
161178
uses: mamba-org/setup-micromamba@v2
162179
with:
163180
environment-name: wheel-env
@@ -170,6 +187,12 @@ jobs:
170187
cache-downloads: true
171188
cache-environment: true
172189

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+
173196
- name: Validate wheel RECORD
174197
shell: bash -el {0}
175198
run: for whl in $(ls wheelhouse); do wheel unpack wheelhouse/$whl -d /tmp; done

0 commit comments

Comments
 (0)