Skip to content

Update CI to newest actions and Python 3.13 #153

Update CI to newest actions and Python 3.13

Update CI to newest actions and Python 3.13 #153

Workflow file for this run

name: Build
# on: [push, pull_request, release]
on:
push:
branches:
release:
types: [created]
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # To ensure tags are retrieved to enabe setuptools_scm to work
- name: Install Python 3.x
uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Install setuptools
run: pip install setuptools
- name: Build sdist
run: python setup.py sdist
- name: Save sdist
uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz
wheels:
name: Build wheels on ${{ matrix.os }} CIBW_BUILD=${{ matrix.cibw_build }}
runs-on: ${{ matrix.os }}
strategy:
# since multiple builds run at the same time, cancelling them all when one
# fails is wasteful and forces handling build problems one by one instead
# of showing a "full picture"
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-13 # x86
- macos-latest # arm
- windows-latest
cibw_build: [cp39-*, cp310-*, cp311-*, cp312-*, cp313-*]
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # To ensure tags are retrieved to enabe setuptools_scm to work
- name: Install Python 3.x
uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Set up QEMU # Needed to build aarch64 wheels
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Build wheels
uses: pypa/cibuildwheel@v2.21
env:
CIBW_ENVIRONMENT: PYLZ4_USE_SYSTEM_LZ4="False"
CIBW_ARCHS_LINUX: "x86_64 i686 aarch64"
CIBW_ARCHS_MACOS: "auto64" # since we have both runner arches
CIBW_ARCHS_WINDOWS: "AMD64 x86"
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_SKIP: "cp*-musllinux*"
CIBW_TEST_COMMAND: "tox -c {project}"
CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64 *-*linux_{aarch64,ppc64le,s390x}"
CIBW_BEFORE_BUILD: "python -m pip install -U pip && python -m pip install tox"
- name: Save wheels
uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ strategy.job-index }}
path: wheelhouse/*.whl
upload_pypi:
name: Upload to PyPI
needs: [sdist, wheels]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
- uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
skip_existing: true