|
|
|
|
|
|
|
|
|
|
|
name: CI |
|
|
|
on: |
|
push: |
|
branches: |
|
- main |
|
- master |
|
tags: |
|
- '*' |
|
pull_request: |
|
workflow_dispatch: |
|
|
|
permissions: |
|
contents: read |
|
|
|
jobs: |
|
linux: |
|
runs-on: ubuntu-latest |
|
strategy: |
|
matrix: |
|
target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- uses: actions/setup-python@v4 |
|
with: |
|
python-version: '3.10' |
|
- name: Build wheels |
|
uses: PyO3/maturin-action@v1 |
|
with: |
|
target: ${{ matrix.target }} |
|
args: --release --out dist --find-interpreter |
|
sccache: 'true' |
|
manylinux: auto |
|
- name: Upload wheels |
|
uses: actions/upload-artifact@v3 |
|
with: |
|
name: wheels |
|
path: dist |
|
|
|
windows: |
|
runs-on: windows-latest |
|
strategy: |
|
matrix: |
|
target: [x64, x86] |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- uses: actions/setup-python@v4 |
|
with: |
|
python-version: '3.10' |
|
architecture: ${{ matrix.target }} |
|
- name: Build wheels |
|
uses: PyO3/maturin-action@v1 |
|
with: |
|
target: ${{ matrix.target }} |
|
args: --release --out dist --find-interpreter |
|
sccache: 'true' |
|
- name: Upload wheels |
|
uses: actions/upload-artifact@v3 |
|
with: |
|
name: wheels |
|
path: dist |
|
|
|
macos: |
|
runs-on: macos-latest |
|
strategy: |
|
matrix: |
|
target: [x86_64, aarch64] |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- uses: actions/setup-python@v4 |
|
with: |
|
python-version: '3.10' |
|
- name: Build wheels |
|
uses: PyO3/maturin-action@v1 |
|
with: |
|
target: ${{ matrix.target }} |
|
args: --release --out dist --find-interpreter |
|
sccache: 'true' |
|
- name: Upload wheels |
|
uses: actions/upload-artifact@v3 |
|
with: |
|
name: wheels |
|
path: dist |
|
|
|
sdist: |
|
runs-on: ubuntu-latest |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Build sdist |
|
uses: PyO3/maturin-action@v1 |
|
with: |
|
command: sdist |
|
args: --out dist |
|
- name: Upload sdist |
|
uses: actions/upload-artifact@v3 |
|
with: |
|
name: wheels |
|
path: dist |
|
|
|
release: |
|
name: Release |
|
runs-on: ubuntu-latest |
|
if: "startsWith(github.ref, 'refs/tags/')" |
|
needs: [linux, windows, macos, sdist] |
|
steps: |
|
- uses: actions/download-artifact@v3 |
|
with: |
|
name: wheels |
|
- name: Publish to PyPI |
|
uses: PyO3/maturin-action@v1 |
|
env: |
|
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} |
|
with: |
|
command: upload |
|
args: --skip-existing * |
|
|