Skip to content

Testing new release pipeline based on cibuildwheel #1

Testing new release pipeline based on cibuildwheel

Testing new release pipeline based on cibuildwheel #1

#
# This workflow will build multiple Python wheels and upload the packages when a release is created
# For more information see: https://cibuildwheel.pypa.io/en/stable/ci-services/#github-actions
#
name: Upload Python Package
on: [push, pull_request]
#on:
# release:
# types: [created]
#
# workflow_dispatch: # allow running the workflow manually
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# macos-15-intel is an Intel runner, macos-14 is Apple silicon
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-latest]
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Build wheels
uses: pypa/cibuildwheel@v3.3.1
# env:
# CIBW_SOME_OPTION: value
# ...
# with:
# package-dir: .
# output-dir: wheelhouse
# config-file: "{package}/pyproject.toml"
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
make_sdist:
name: Make SDist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: true
- name: Build SDist
run: pipx run build --sdist
- uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz
upload_all:
needs: [build_wheels, make_sdist]
environment: pypi
permissions:
id-token: write
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v5
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1