Skip to content

chore: build binary wheels using cibuildwheel #12

chore: build binary wheels using cibuildwheel

chore: build binary wheels using cibuildwheel #12

Workflow file for this run

name: Build wheels
on:
# Run when a release has been created
# release:
# types: [created]
# TODO(vytas): Remove testing and only leave on release later.
pull_request:
branches:
- master
jobs:
build-sdist:
name: sdist
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Build sdist
run: |
pip install build
python -m build --sdist
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz
build-wheels:
needs: build-sdist
name: ${{ matrix.python }}-${{ matrix.platform.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- name: manylinux_x86_64
os: ubuntu-latest
- name: musllinux_x86_64
os: ubuntu-latest
- name: manylinux_aarch64
os: ubuntu-latest
emulation: true
- name: musllinux_aarch64
os: ubuntu-latest
emulation: true
- name: manylinux_s390x
os: ubuntu-latest
emulation: true
- name: macosx_x86_64
os: macos-13
- name: macosx_arm64
os: macos-14
- name: win_amd64
os: windows-latest
python:
- cp39
- cp310
- cp311
- cp312
- cp313
include:
- python: cp38
platform:
name: manylinux_x86_64
os: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
if: ${{ matrix.platform.emulation }}
with:
platforms: all
- name: Build wheels
uses: pypa/cibuildwheel@v2.20.0
if: ${{ matrix.platform.os == 'windows-latest' }}
env:
CIBW_ARCHS_LINUX: all
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.platform.name }}
- name: Upload artifacts
# NOTE(vytas): Not using v4 yet because it does not support combining
# files from multiple jobs; see #478 on actions/upload-artifact.
uses: actions/upload-artifact@v4
if: ${{ matrix.python == 'windows-latest' }}
with:
name: cibw-wheel-${{ matrix.python }}-${{ matrix.platform.name }}
path: wheelhouse/*.whl