|
- name: Build
- on: [push, pull_request]
-
- jobs:
- build-wheels:
- name: Build wheels for ${{ matrix.os }}
- runs-on: ${{ matrix.runs-on }}
- strategy:
- matrix:
- include:
- - os: linux-intel
- runs-on: ubuntu-latest
- - os: linux-arm
- runs-on: ubuntu-24.04-arm
- - os: windows-intel
- runs-on: windows-latest
- - os: macos-intel
- runs-on: macos-13
- - os: macos-arm
- runs-on: macos-latest
-
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - name: Build wheels
- uses: pypa/cibuildwheel@v3.0.0
-
- - uses: actions/upload-artifact@v4
- with:
- name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
- path: ./wheelhouse/*.whl
-
- - name: Get coverage files
- if: matrix.os == 'linux-intel'
- id: get-coverage-files
- run: |
- FILES=$(find ./wheelhouse -type f -name 'coverage*' -printf '%p ')
- echo "Found coverage files: $FILES"
- echo "files=$FILES" >> $GITHUB_OUTPUT
-
- - name: Coveralls
- if: matrix.os == 'linux-intel'
- uses: coverallsapp/github-action@v2
- with:
- files: ${{ steps.get-coverage-files.outputs.files }}
- format: lcov
-
- build-sdist:
- name: Build source distribution
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - name: Build sdist
- run: pipx run build --sdist
-
- - uses: actions/upload-artifact@v4
- with:
- name: cibw-sdist
- path: dist/*.tar.gz
-
- upload-pypi:
- name: Publish to PyPI
- needs: [build-wheels, build-sdist]
- runs-on: ubuntu-latest
- environment: pypi
- permissions:
- id-token: write
- if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
- steps:
- - uses: actions/download-artifact@v4
- with:
- pattern: cibw-*
- path: dist
- merge-multiple: true
-
- - uses: pypa/gh-action-pypi-publish@release/v1
|