88
99jobs :
1010 build_wheels :
11- name : ${{ matrix.os }}, Python ${{ matrix.python }}
11+ name : ${{ matrix.os }}, ${{matrix.python_impl }} ${{ matrix.python }}
1212 runs-on : ${{ matrix.os }}
1313 defaults :
1414 run :
@@ -17,20 +17,26 @@ jobs:
1717 fail-fast : false
1818 matrix :
1919 python : [cp39, cp310, cp311, cp312]
20- os : [ubuntu-latest, windows-latest, macOS-latest]
20+ os : [ubuntu-latest, windows-latest, macos-13, macos-latest]
21+ python_impl : [Python]
22+ include :
23+ - python : cp312
24+ os : ubuntu-latest
25+ python_impl : Pyodide
2126 env :
2227 BUILD_COMMIT : " v0.14.2" # or a specific version, e.g., v0.13.1
2328 CIBW_BUILD : ${{ matrix.python }}-*
2429 CIBW_ARCHS_LINUX : " x86_64 aarch64"
25- CIBW_ARCHS_MACOS : " x86_64 arm64"
30+ CIBW_ARCHS_MACOS : " arm64"
2631 # No support for pypy, musl, Win32 for 3.10+
2732 # Skip musl for 3.8 and 3.9 since no upstream wheels
2833 CIBW_SKIP : " pp* *-win32 cp38-musllinux* cp39-musllinux* *musllinux_aarch64*"
29- CIBW_TEST_REQUIRES : pytest==7.4.4 pytest-xdist
30- CIBW_TEST_COMMAND : python -c "import statsmodels; statsmodels.test(['--skip-examples','--skip-slow','-n','2'])"
31- # Avoid testing on emulated architectures
32- CIBW_TEST_SKIP : " *-*linux_{aarch64,ppc64le,s390x}"
34+ CIBW_TEST_REQUIRES : pytest pytest-xdist
35+ CIBW_TEST_COMMAND : python -c "import statsmodels; statsmodels.test(['--skip-examples','--skip-slow','-n','2'], exit=True )"
36+ # Avoid testing on emulated architectures and Pyodide
37+ CIBW_TEST_SKIP : " *-*linux_{aarch64,ppc64le,s390x} *pyodide* "
3338 CIBW_REPAIR_WHEEL_COMMAND_LINUX : ' auditwheel repair --strip -w {dest_dir} {wheel}'
39+ CIBW_BUILD_VERBOSITY : 1
3440 MULTIBUILD_WHEELS_STAGING_ACCESS : ${{ secrets.MULTIBUILD_WHEELS_STAGING_ACCESS }}
3541 SCIENTIFIC_PYTHON_NIGHTLY_WHEELS : ${{ secrets.SCIENTIFIC_PYTHON_NIGHTLY_WHEELS }}
3642 MKL_NUM_THREADS : 1
@@ -43,25 +49,40 @@ jobs:
4349 submodules : recursive
4450 fetch-depth : 0
4551
46- # Used to host cibuildwheel
47- - uses : actions/setup-python@v5
48- with :
49- python-version : ' 3.x'
50-
5152 - name : Set up QEMU
5253 if : runner.os == 'Linux'
5354 uses : docker/setup-qemu-action@v3
5455 with :
5556 platforms : all
5657
57- - name : Install cibuildwheel
58- run : python -m pip install cibuildwheel==2.16.5
58+ - name : Build wheels (Default)
59+ 60+ if : (matrix.python_impl != 'Pyodide') && (matrix.os != 'macos-13')
61+ with :
62+ output-dir : wheelhouse
63+ package-dir : statsmodels
64+ env :
65+ CIBW_BEFORE_BUILD : ' git submodule foreach git checkout ${{ env.BUILD_COMMIT }}'
5966
60- - name : Build wheels
61- run : |
62- python -m cibuildwheel --output-dir wheelhouse statsmodels
67+ - name : Build wheels (MacOS x86_64)
68+ if : matrix.os == 'macos-13'
69+ 70+ with :
71+ output-dir : wheelhouse
72+ package-dir : statsmodels
73+ env :
74+ CIBW_BEFORE_BUILD : ' git submodule foreach git checkout ${{ env.BUILD_COMMIT }}'
75+ CIBW_ARCHS_OSX : " x86_64"
76+
77+ - name : Build Pyodide wheel
78+ if : matrix.python_impl == 'Pyodide'
79+ 80+ with :
81+ output-dir : wheelhouse
82+ package-dir : statsmodels
6383 env :
6484 CIBW_BEFORE_BUILD : ' git submodule foreach git checkout ${{ env.BUILD_COMMIT }}'
85+ CIBW_PLATFORM : pyodide
6586
6687 - name : Setup Upload Variables
6788 if : ${{ always() }}
0 commit comments