Skip to content

Commit 4b1de22

Browse files
committed
Build: Add separate abi3 build job.
1 parent 8e17f0d commit 4b1de22

1 file changed

Lines changed: 53 additions & 4 deletions

File tree

.github/workflows/wheels.yml

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,59 @@ jobs:
151151
path: ./wheelhouse/*.whl
152152
name: wheel-${{ matrix.only }}
153153

154+
build_limited_api_wheels:
155+
name: Build Stable ABI wheels on ${{ matrix.os }}
156+
if: >-
157+
github.event_name == 'push' ||
158+
github.event_name == 'release' ||
159+
(github.event_name == 'schedule' && github.repository == 'cython/cython') ||
160+
github.event_name == 'workflow_dispatch'
161+
runs-on: ${{ matrix.os }}
162+
163+
strategy:
164+
fail-fast: false
165+
matrix:
166+
os:
167+
- 'ubuntu-latest'
168+
- 'ubuntu-24.04-arm'
169+
- 'windows-latest'
170+
- 'windows-11-arm'
171+
- 'macos-latest'
172+
173+
steps:
174+
- name: Checkout Cython
175+
uses: actions/checkout@v6
176+
177+
- uses: actions/setup-python@v6.2.0
178+
with:
179+
python-version: '3.13'
180+
181+
- name: Build wheels
182+
uses: pypa/cibuildwheel@v3.3.1
183+
env:
184+
# Smaller set of platforms that we only provide Stable ABI wheels for
185+
CIBW_BUILD: |
186+
${{
187+
matrix.os == 'ubuntu-24.04-arm' && '*armv7l *musllinux_aarch64' ||
188+
matrix.os == 'ubuntu-latest' && '*linux_i686 *musllinux_x86_64' ||
189+
matrix.os == 'windows-latest' && '*win32' ||
190+
matrix.os == 'macos-latest' && '*macosx_x86_64' ||
191+
matrix.os == 'windows-11-arm' && '*win_arm64' ||
192+
'' }}
193+
194+
- name: Check wheel
195+
run: |
196+
python -m pip install twine
197+
python -m twine check ./wheelhouse/*.whl
198+
199+
- uses: actions/upload-artifact@v6.0.0
200+
with:
201+
name: Stable-ABI-${{ matrix.os }}-${{ strategy.job-index }}
202+
path: ./wheelhouse/*.whl
203+
154204
upload_release_assets:
155205
name: Upload Release Wheels
156-
needs: [ sdist, build_wheels, Linux ]
206+
needs: [ sdist, build_wheels, build_limited_api_wheels, manylinux2014 ]
157207
runs-on: ubuntu-latest
158208
if: startsWith(github.ref, 'refs/tags')
159209

@@ -182,8 +232,7 @@ jobs:
182232
./bdist_downloads/*.whl
183233
./bdist_downloads/*.tar.gz
184234
185-
Linux:
186-
235+
manylinux2014:
187236
strategy:
188237
# Allows for matrix sub-jobs to fail without canceling the rest
189238
fail-fast: false
@@ -194,7 +243,7 @@ jobs:
194243
- manylinux2014_i686
195244
pyversion: ["*"]
196245

197-
runs-on: ubuntu-22.04
246+
runs-on: ubuntu-latest
198247

199248
steps:
200249
- uses: actions/checkout@v5

0 commit comments

Comments
 (0)