Skip to content

ci: use uv + cibuildwheel to build all wheels #2234

ci: use uv + cibuildwheel to build all wheels

ci: use uv + cibuildwheel to build all wheels #2234

Workflow file for this run

on:
push:
pull_request:
schedule:
- cron: '30 13 * * *'
permissions: { }
jobs:
linux:
strategy:
fail-fast: false
matrix:
py:
- 'cp39'
- 'cp310'
- 'cp311'
- 'cp312'
- 'cp313'
- 'cp314'
arch:
- 'aarch64'
- 'i686'
- 'ppc64le'
- 's390x'
- 'x86_64'
abi:
- 'manylinux'
- 'musllinux'
runs-on: ${{ endsWith(matrix.image, 'aarch64') && 'ubuntu-22.04-arm' || 'ubuntu-22.04' }}
env:
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BUILD: ${{ matrix.py }}-${{ matrix.abi }}_${{ matrix.arch }}
CIBW_BUILD_VERBOSITY: '1'
ZSTD_WARNINGS_AS_ERRORS: '1'
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@d9e0f98d3fc6adb07d1e3d37f3043649ddad06a1 # v6.5.0
with:
version: "0.8.11"
- name: Set up QEMU
if: ${{ endsWith(matrix.image, 'ppc64le') || endsWith(matrix.image, 's390x') }}
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- name: Build Wheel
run: |
uvx -p 3.13 [email protected] --output-dir dist
- name: Upload Wheel
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: linux-${{ matrix.py }}-${{ matrix.image }}
path: dist
macos:
strategy:
fail-fast: false
matrix:
py:
- 'cp39'
- 'cp310'
- 'cp311'
- 'cp312'
- 'cp313'
- 'cp314'
arch:
- 'arm64'
- 'x86_64'
runs-on: ${{ matrix.arch == 'x86_64' && 'macos-13' || 'macos-14' }}
env:
CIBW_ARCHES: ${{ matrix.arch }}
CIBW_BUILD: ${{ matrix.py }}-macosx_${{ matrix.arch }}
CIBW_BUILD_VERBOSITY: '1'
ZSTD_WARNINGS_AS_ERRORS: '1'
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@d9e0f98d3fc6adb07d1e3d37f3043649ddad06a1 # v6.5.0
with:
version: "0.8.11"
- name: Build Wheel
run: |
uvx -p 3.13 [email protected] --output-dir dist
- name: Upload Wheel
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: macos-${{ matrix.py }}-${{ matrix.arch }}
path: dist
windows:
strategy:
fail-fast: false
matrix:
py:
- 'cp39'
- 'cp310'
- 'cp311'
- 'cp312'
- 'cp313'
- 'cp314'
arch:
- 'win32'
- 'win_amd64'
- 'win_arm64'
exclude:
- py: 'cp39'
arch: 'win_arm64'
- py: 'cp310'
arch: 'win_arm64'
runs-on: ${{ matrix.arch == 'win_arm64' && 'windows-11-arm' || 'windows-2022' }}
env:
CIBW_ARCHES: ${{ matrix.arch }}
CIBW_BUILD: ${{ matrix.py }}-${{ matrix.arch }}
CIBW_BUILD_VERBOSITY: '1'
ZSTD_WARNINGS_AS_ERRORS: '1'
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@d9e0f98d3fc6adb07d1e3d37f3043649ddad06a1 # v6.5.0
with:
version: "0.8.11"
- name: Build Wheel
run: |
uvx -p 3.13 [email protected] --output-dir dist
- name: Upload Wheel
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: windows-${{ matrix.py }}-${{ matrix.arch }}
path: dist