|
name: Wheels |
|
|
|
on: |
|
workflow_dispatch: |
|
pull_request: |
|
push: |
|
branches: |
|
- master |
|
release: |
|
types: |
|
- published |
|
|
|
concurrency: |
|
group: ${{ github.workflow }}-${{ github.ref }} |
|
cancel-in-progress: true |
|
|
|
jobs: |
|
build_sdist: |
|
name: Build SDist |
|
runs-on: ubuntu-latest |
|
steps: |
|
- uses: actions/checkout@v7 |
|
|
|
- name: Build SDist |
|
run: pipx run build --sdist |
|
|
|
- name: Check metadata |
|
run: pipx run twine check dist/* |
|
|
|
- uses: actions/upload-artifact@v7 |
|
with: |
|
name: cibw-sdist |
|
path: dist/*.tar.gz |
|
|
|
|
|
build_wheels: |
|
name: Wheels on ${{ matrix.os }} |
|
runs-on: ${{ matrix.os }} |
|
strategy: |
|
fail-fast: false |
|
matrix: |
|
os: [ubuntu-latest, windows-latest, macos-latest, macos-26-intel, ubuntu-24.04-arm, windows-11-arm] |
|
|
|
steps: |
|
- uses: actions/checkout@v7 |
|
|
|
- uses: astral-sh/setup-uv@v10.1.0 |
|
|
|
- uses: pypa/cibuildwheel@v4.2 |
|
|
|
- name: Verify clean directory |
|
run: git diff --exit-code |
|
shell: bash |
|
|
|
- name: Upload wheels |
|
uses: actions/upload-artifact@v7 |
|
with: |
|
name: cibw-wheels-${{ matrix.os }} |
|
path: wheelhouse/*.whl |
|
|
|
|
|
upload_all: |
|
name: Upload if release |
|
needs: [build_wheels, build_sdist] |
|
runs-on: ubuntu-latest |
|
if: github.event_name == 'release' && github.event.action == 'published' |
|
|
|
steps: |
|
- uses: actions/setup-python@v7 |
|
with: |
|
python-version: "3.x" |
|
|
|
- uses: actions/download-artifact@v8 |
|
with: |
|
pattern: cibw-* |
|
path: dist |
|
merge-multiple: true |
|
- uses: pypa/gh-action-pypi-publish@release/v1 |
|
with: |
|
user: __token__ |
|
password: ${{ secrets.pypi_password }} |