| # This file is autogenerated by maturin v0.14.15 |
| # To update, run |
| # |
| # maturin init |
| # |
| on: |
| push: |
| branches: |
| - 'main' |
| tags: |
| - '*' |
| pull_request: |
| workflow_dispatch: |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| lint_and_test: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| python-version: ['3.8', '3.11', 'pypy3.9'] |
| steps: |
| - uses: actions/checkout@v3 |
| with: |
| submodules: recursive |
| - uses: actions/setup-python@v4 |
| with: |
| python-version: ${{ matrix.python-version }} |
| - name: Build wheels |
| uses: PyO3/maturin-action@v1 |
| with: |
| target: ${{ matrix.target }} |
| args: --release --out dist -i ${{ matrix.python-version }} |
| sccache: 'true' |
| - name: Install Just |
| uses: extractions/setup-just@v1 |
| - name: Run Cargo Tests |
| run: | |
| cargo test |
| - name: Run pytest |
| run: | |
| just venv pytest |
| |
| linux: |
| runs-on: ubuntu-latest |
| needs: lint_and_test |
| strategy: |
| matrix: |
| platform: |
| - target: x64 |
| interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.7 pypy3.8 pypy3.9 |
| - target: aarch64 |
| interpreter: 3.7 3.8 3.9 3.10 3.11 3.12 pypy3.7 pypy3.8 pypy3.9 |
| # armv7? |
| steps: |
| - uses: actions/checkout@v3 |
| with: |
| submodules: recursive |
| - name: Build wheels |
| uses: PyO3/maturin-action@v1 |
| with: |
| target: ${{ matrix.platform.target }} |
| args: --release --out dist -i ${{ matrix.platform.interpreter }} |
| sccache: 'true' |
| manylinux: auto |
| - name: Upload wheels |
| uses: actions/upload-artifact@v3 |
| with: |
| name: wheels |
| path: dist |
| musllinux: |
| runs-on: ubuntu-latest |
| needs: lint_and_test |
| strategy: |
| matrix: |
| platform: |
| - target: x86_64-unknown-linux-musl |
| arch: x86_64 |
| interpreter: 3.7 3.8 3.9 3.10 3.11 pypy3.8 pypy3.9 |
| - target: i686-unknown-linux-musl |
| arch: x86 |
| interpreter: 3.7 3.8 3.9 3.10 3.11 pypy3.8 pypy3.9 |
| # all values: [x86_64, x86, aarch64, armhf, armv7, ppc64le, riscv64, s390x] |
| # { target: "aarch64-unknown-linux-musl", arch: "aarch64" }, |
| # { target: "armv7-unknown-linux-musleabihf", image_tag: "armv7" }, |
| # { target: "powerpc64le-unknown-linux-musl", image_tag: "ppc64le" }, |
| steps: |
| - uses: actions/checkout@v3 |
| with: |
| submodules: recursive |
| - name: Setup QEMU |
| uses: docker/setup-qemu-action@v2 |
| - name: Build wheels |
| uses: PyO3/maturin-action@v1 |
| with: |
| target: ${{ matrix.platform.target }} |
| args: --release --out dist -i ${{ matrix.platform.interpreter }} |
| sccache: 'true' |
| manylinux: musllinux_1_1 |
| - name: Upload wheels |
| uses: actions/upload-artifact@v3 |
| with: |
| name: wheels |
| path: dist |
| |
| windows: |
| runs-on: windows-latest |
| needs: lint_and_test |
| strategy: |
| matrix: |
| platform: |
| - target: x64 |
| interpreter: 3.7 3.8 3.9 3.10 3.11 |
| - target: x86 |
| interpreter: 3.7 3.8 3.9 3.10 3.11 |
| steps: |
| - uses: actions/checkout@v3 |
| with: |
| submodules: recursive |
| - name: Build wheels |
| uses: PyO3/maturin-action@v1 |
| with: |
| target: ${{ matrix.platform.target }} |
| args: --release --out dist -i ${{ matrix.platform.interpreter }} |
| sccache: 'true' |
| - name: Upload wheels |
| uses: actions/upload-artifact@v3 |
| with: |
| name: wheels |
| path: dist |
| |
| macos: |
| runs-on: macos-latest |
| needs: lint_and_test |
| strategy: |
| matrix: |
| platform: |
| - target: x64 |
| interpreter: 3.7 3.8 3.9 3.10 3.11 pypy3.8 pypy3.9 |
| - target: aarch64 |
| interpreter: 3.7 3.8 3.9 3.10 3.11 pypy3.8 pypy3.9 |
| steps: |
| - uses: actions/checkout@v3 |
| with: |
| submodules: recursive |
| - name: Build wheels |
| uses: PyO3/maturin-action@v1 |
| with: |
| target: ${{ matrix.platform.target }} |
| args: --release --out dist -i ${{ matrix.platform.interpreter }} |
| sccache: 'true' |
| - name: Upload wheels |
| uses: actions/upload-artifact@v3 |
| with: |
| name: wheels |
| path: dist |
| |
| sdist: |
| runs-on: ubuntu-latest |
| needs: lint_and_test |
| steps: |
| - uses: actions/checkout@v3 |
| with: |
| submodules: recursive |
| - 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, musllinux] |
| 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 * |