matrix:
# emulated wheels on linux take too much time, split wheels into multiple runs
python:
- - "cp37-* cp38-* cp39-*"
+ - "cp37-*"
+ - "cp38-* cp39-*"
- "cp310-* cp311-*"
- "cp312-* cp313-* cp314-*"
- "cp313t-* cp314t-*"
- compiled
os:
- "windows-2022"
- # TODO: macos-14 uses arm macs (only python 3.10+) - make arm wheel on it
- - "macos-13"
+ - "macos-15"
- "ubuntu-22.04"
- "ubuntu-22.04-arm"
linux_archs:
# create pure python build
- os: ubuntu-22.04
wheel_mode: pure-python
- python: "cp-312*"
+ python: "cp-313*"
exclude:
- os: "windows-2022"
linux_archs: "aarch64"
- - os: "macos-13"
- linux_archs: "aarch64"
+ - os: "macos-15"
+ python: "cp37-*"
+ - os: "macos-15"
+ linux_archs: "x86_64"
- os: "ubuntu-22.04"
linux_archs: "aarch64"
- os: "ubuntu-22.04-arm"
# platforms: all
- name: Build compiled wheels
- if: ${{ matrix.wheel_mode == 'compiled' }}
+ if: ${{ matrix.wheel_mode == 'compiled' && matrix.python != 'cp37-*' }}
uses: pypa/cibuildwheel@v3.3.0
env:
CIBW_ARCHS_LINUX: ${{ matrix.linux_archs }}
CIBW_BUILD: ${{ matrix.python }}
- CIBW_ENABLE: ${{ matrix.python == 'cp313t-*' && 'cpython-freethreading' || '' }}
+ CIBW_ENABLE: ${{ matrix.python == 'cp313t-* cp314t-*' && 'cpython-freethreading' || '' }}
+ # setting it here does not work on linux
+ # PYTHONNOUSERSITE: "1"
+
+ - name: Build compiled wheels 3.7
+ if: ${{ matrix.wheel_mode == 'compiled' && matrix.python == 'cp37-*' }}
+ uses: pypa/cibuildwheel@v2.23.3
+ env:
+ CIBW_ARCHS_LINUX: ${{ matrix.linux_archs }}
+ CIBW_BUILD: ${{ matrix.python }}
# setting it here does not work on linux
# PYTHONNOUSERSITE: "1"
# python 3.6 is no longer supported by sqlalchemy
# pypy uses the universal wheel fallback, since it does not use any compiled extension
skip = "cp36-* pp*"
-# TODO: remove this skip once action support arm macs
-test-skip = "*-macosx_arm64"
[tool.cibuildwheel.macos]
-archs = ["x86_64", "arm64"]
+archs = ["arm64"]
# On an Linux Intel runner with qemu installed, build Intel and ARM wheels
# NOTE: this is overriden in the pipeline using the CIBW_ARCHS_LINUX env variable to speed up the build