Skip to content

Commit 8644f7a

Browse files
committed
ENH: Add WIndows ARM64 build
Add wheel building for windows ARM64, which currently fails
1 parent 07b6f8d commit 8644f7a

2 files changed

Lines changed: 22 additions & 6 deletions

File tree

.github/workflows/build-wheels.yml

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,20 @@ jobs:
1818
strategy:
1919
fail-fast: false
2020
matrix:
21-
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel]
21+
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel, windows-11-arm]
2222
python: [cp310, cp311, cp312, cp313, cp314]
2323
python_impl: [Python]
2424
include:
2525
- python: cp312
2626
os: ubuntu-latest
2727
python_impl: Pyodide
28+
exclude:
29+
- os: windows-11-arm
30+
python: cp310
31+
- os: windows-11-arm
32+
python: cp311
33+
- os: windows-11-arm
34+
python: cp312
2835
env:
2936
BUILD_COMMIT: "main" # or a specific version, e.g., v0.13.1
3037
CIBW_BUILD: ${{ matrix.python }}-*
@@ -33,8 +40,8 @@ jobs:
3340
# No support for pypy, musl, Win32 for 3.10+
3441
# Skip musl for 3.8 and 3.9 since no upstream wheels
3542
CIBW_SKIP: "pp* *-win32 *musllinux_aarch64*"
36-
CIBW_TEST_REQUIRES: pytest pytest-xdist
37-
CIBW_TEST_COMMAND: python -c "import statsmodels; statsmodels.test(['-m','(not slow and not example)','-n','2'], exit=True)"
43+
CIBW_TEST_REQUIRES: pytest pytest-xdist pytest-randomly threadpoolctl
44+
CIBW_TEST_COMMAND: python -c "import numpy; numpy.show_runtime(); import statsmodels; statsmodels.test(['-m','(not slow and not example)','-n','2'], exit=True)"
3845
# Avoid testing on emulated architectures and Pyodide
3946
CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x} *pyodide*"
4047
CIBW_REPAIR_WHEEL_COMMAND_LINUX: 'auditwheel repair --strip -w {dest_dir} {wheel}'
@@ -101,6 +108,7 @@ jobs:
101108
102109
- name: Install conda
103110
uses: conda-incubator/setup-miniconda@v3
111+
if: (runner.os != 'Windows') || ((runner.os == 'Windows') && (runner.arch != 'ARM64'))
104112
with:
105113
# for installation of anaconda-client, required for upload to
106114
# anaconda.org
@@ -112,11 +120,20 @@ jobs:
112120
miniforge-version: latest
113121
conda-remove-defaults: "true"
114122

115-
- name: Inspect conda
123+
- name: Inspect conda and install anaconda-client
116124
shell: pwsh
125+
if: (runner.os != 'Windows') || ((runner.os == 'Windows') && (runner.arch != 'ARM64'))
117126
run: |
118127
conda info
119128
conda list
129+
conda install -y anaconda-client
130+
131+
- name: Install anaconda-client (Windows ARM64)
132+
shell: pwsh
133+
if: ((runner.os == 'Windows') && (runner.arch == 'ARM64'))
134+
run: |
135+
python -m pip install pip -U
136+
pip install --only-binary :all: anaconda-client
120137
121138
- name: Upload wheels
122139
if: ${{ always() }}
@@ -137,7 +154,6 @@ jobs:
137154
echo ${PWD}
138155
if ( $env:ANACONDA_UPLOAD -eq "true")
139156
{
140-
conda install -y anaconda-client
141157
echo "Uploading to $env:ANACONDA_ORG"
142158
# main branches of these two packages
143159
ls ./wheelhouse/*.whl

statsmodels

Submodule statsmodels updated 63 files

0 commit comments

Comments
 (0)