diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 88a3ff7..2453717 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,13 +9,29 @@ on: pull_request: workflow_dispatch: +env: + WINDOWS_BUILD_VERSION: 3.7 3.8 3.9 3.10 3.11 3.12 3.13 + UNIX_BUILD_VERSION: 3.7 3.8 3.9 3.10 3.11 3.12 3.13 pypy3.8 pypy3.9 pypy3.10 + jobs: test: name: Test runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: + [ + "3.7", + "3.8", + "3.9", + "3.10", + "3.11", + "3.13", + "3.13", + "pypy3.8", + "pypy3.9", + "pypy3.10", + ] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 @@ -33,6 +49,7 @@ jobs: linux: runs-on: ${{ matrix.platform.runner }} + needs: test strategy: matrix: platform: @@ -52,12 +69,12 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.13" - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter + args: --release --out dist -i ${{ env.UNIX_BUILD_VERSION }} sccache: "true" manylinux: auto - name: Upload wheels @@ -68,6 +85,7 @@ jobs: windows: runs-on: ${{ matrix.platform.runner }} + needs: test strategy: matrix: platform: @@ -79,13 +97,13 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.13" architecture: ${{ matrix.platform.target }} - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter + args: --release --out dist -i ${{ env.WINDOWS_BUILD_VERSION }} sccache: "true" - name: Upload wheels uses: actions/upload-artifact@v4 @@ -95,6 +113,7 @@ jobs: macos: runs-on: ${{ matrix.platform.runner }} + needs: test strategy: matrix: platform: @@ -106,12 +125,12 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.13" - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter + args: --release --out dist -i ${{ env.UNIX_BUILD_VERSION }} sccache: "true" - name: Upload wheels uses: actions/upload-artifact@v4 @@ -121,6 +140,7 @@ jobs: sdist: runs-on: ubuntu-latest + needs: test steps: - uses: actions/checkout@v4 - name: Build sdist @@ -142,9 +162,9 @@ jobs: if: "startsWith(github.ref, 'refs/tags/')" needs: [linux, windows, macos, sdist] steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: - name: wheels + name: wheels-* path: wheels/ - name: Publish package distributions to PyPI