Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 38 additions & 17 deletions .github/workflows/build-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
build_wheels:
name: ${{ matrix.os }}, Python ${{ matrix.python }}
name: ${{ matrix.os }}, ${{matrix.python_impl }} ${{ matrix.python }}
runs-on: ${{ matrix.os }}
defaults:
run:
Expand All @@ -17,20 +17,26 @@ jobs:
fail-fast: false
matrix:
python: [cp39, cp310, cp311, cp312]
os: [ubuntu-latest, windows-latest, macOS-latest]
os: [ubuntu-latest, windows-latest, macos-13, macos-latest]
python_impl: [Python]
include:
- python: cp312
os: ubuntu-latest
python_impl: Pyodide
env:
BUILD_COMMIT: "v0.14.2" # or a specific version, e.g., v0.13.1
CIBW_BUILD: ${{ matrix.python }}-*
CIBW_ARCHS_LINUX: "x86_64 aarch64"
CIBW_ARCHS_MACOS: "x86_64 arm64"
CIBW_ARCHS_MACOS: "arm64"
# No support for pypy, musl, Win32 for 3.10+
# Skip musl for 3.8 and 3.9 since no upstream wheels
CIBW_SKIP: "pp* *-win32 cp38-musllinux* cp39-musllinux* *musllinux_aarch64*"
CIBW_TEST_REQUIRES: pytest==7.4.4 pytest-xdist
CIBW_TEST_COMMAND: python -c "import statsmodels; statsmodels.test(['--skip-examples','--skip-slow','-n','2'])"
# Avoid testing on emulated architectures
CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x}"
CIBW_TEST_REQUIRES: pytest pytest-xdist
CIBW_TEST_COMMAND: python -c "import statsmodels; statsmodels.test(['--skip-examples','--skip-slow','-n','2'], exit=True)"
# Avoid testing on emulated architectures and Pyodide
CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x} *pyodide*"
CIBW_REPAIR_WHEEL_COMMAND_LINUX: 'auditwheel repair --strip -w {dest_dir} {wheel}'
CIBW_BUILD_VERBOSITY: 1
MULTIBUILD_WHEELS_STAGING_ACCESS: ${{ secrets.MULTIBUILD_WHEELS_STAGING_ACCESS }}
SCIENTIFIC_PYTHON_NIGHTLY_WHEELS: ${{ secrets.SCIENTIFIC_PYTHON_NIGHTLY_WHEELS }}
MKL_NUM_THREADS: 1
Expand All @@ -43,25 +49,40 @@ jobs:
submodules: recursive
fetch-depth: 0

# Used to host cibuildwheel
- uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.16.5
- name: Build wheels (Default)
uses: pypa/[email protected]
if: (matrix.python_impl != 'Pyodide') && (matrix.os != 'macos-13')
with:
output-dir: wheelhouse
package-dir: statsmodels
env:
CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}'

- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse statsmodels
- name: Build wheels (MacOS x86_64)
if: matrix.os == 'macos-13'
uses: pypa/[email protected]
with:
output-dir: wheelhouse
package-dir: statsmodels
env:
CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}'
CIBW_ARCHS_OSX: "x86_64"

- name: Build Pyodide wheel
if: matrix.python_impl == 'Pyodide'
uses: pypa/[email protected]
with:
output-dir: wheelhouse
package-dir: statsmodels
env:
CIBW_BEFORE_BUILD: 'git submodule foreach git checkout ${{ env.BUILD_COMMIT }}'
CIBW_PLATFORM: pyodide

- name: Setup Upload Variables
if: ${{ always() }}
Expand Down
2 changes: 1 addition & 1 deletion statsmodels
Submodule statsmodels updated 714 files
Loading