1616 run-benchmarks : true
1717
1818 build-native :
19- name : Build native wheels on ${{ matrix.os }}
2019 runs-on : ${{ matrix.os }}
2120 strategy :
2221 matrix :
@@ -32,37 +31,35 @@ jobs:
3231 - run : curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
3332
3433 - uses : actions/setup-python@v5
34+ with :
35+ python-version : " 3.12"
3536
3637 - run : python -m pip install cibuildwheel==2.23.2
3738
3839 - run : python -m cibuildwheel --output-dir dist
3940 env :
4041 CIBW_ARCHS_LINUX : ${{ runner.arch == 'X64' && 'auto ppc64le s390x' || 'auto armv7l' }}
4142 CIBW_BEFORE_ALL_LINUX : curl -sSf https://sh.rustup.rs | sh -s -- -y
42- CIBW_BEFORE_ALL_WINDOWS : rustup target add i686-pc-windows-msvc
43+ CIBW_BEFORE_ALL_WINDOWS : ${{ runner.arch == 'X64' && ' rustup target add i686-pc-windows-msvc' || '' }}
4344 # Manually install setuptools-rust to enable building native wheels
4445 CIBW_BEFORE_BUILD : >
45- python -m pip install -U setuptools-rust
46- CIBW_BUILD_FRONTEND : build
47- CIBW_ENVIRONMENT : PATH="$HOME/.cargo/bin:$PATH"
48- CIBW_ENVIRONMENT_WINDOWS : PATH="$UserProfile\.cargo\bin;$PATH"
49- # Use abi3audit to catch issues with Limited API wheels
50- CIBW_REPAIR_WHEEL_COMMAND_LINUX : >
51- auditwheel repair -w {dest_dir} {wheel} &&
52- pipx run abi3audit --strict --report {wheel}
53- CIBW_REPAIR_WHEEL_COMMAND_MACOS : >
54- delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel} &&
55- pipx run abi3audit --strict --report {wheel}
56- CIBW_REPAIR_WHEEL_COMMAND_WINDOWS : >
57- copy {wheel} {dest_dir} &&
58- pipx run abi3audit --strict --report {wheel}
46+ python -m pip install -U setuptools>=77.0.0 setuptools_scm[toml]>=6.4.0 setuptools-rust
47+ CIBW_BUILD_FRONTEND : " build; args: --no-isolation"
48+ CIBW_CONFIG_SETTINGS : " --build-option=--py-limited-api=cp39"
49+ CIBW_ENABLE : pypy
50+ CIBW_ENVIRONMENT_LINUX : ' PATH="$HOME/.cargo/bin:$PATH"'
51+ CIBW_ENVIRONMENT_MACOS : ' MACOSX_DEPLOYMENT_TARGET=10.12'
52+ CIBW_ENVIRONMENT_WINDOWS : ' PATH="$UserProfile\.cargo\bin;$PATH"'
53+ CIBW_SKIP : ' *-musllinux_i686'
5954 # Run tests
6055 CIBW_TEST_REQUIRES : tox
61- CIBW_TEST_COMMAND : tox -c {package}/tox.ini --installpkg {wheel}
56+ CIBW_TEST_COMMAND : tox -e native -c {package}/tox.ini --installpkg {wheel}
57+
58+ - run : pip install abi3audit && abi3audit --strict --report dist/*-abi3-*.whl
6259
6360 - uses : actions/upload-artifact@v4
6461 with :
65- name : packages
62+ name : packages-native-${{ matrix.os }}
6663 path : dist/*
6764 retention-days : 1
6865
7673 steps :
7774 - uses : actions/download-artifact@v4
7875 with :
79- name : packages
76+ pattern : packages-*
8077 path : dist/
8178 # According to the documentation, it automatically looks inside the `dist/` folder for packages.
8279 - name : Publish package distributions to Pypi
0 commit comments