Bump version to 3.0.0 #205
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build | |
| on: | |
| push: | |
| branches: [ master ] | |
| tags: | |
| - '*' | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| build-and-test: | |
| name: Testing on ${{ matrix.os }} with Python ${{ matrix.python-version }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4.2.2 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install maturin and test dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install maturin pytest pytest-benchmark | |
| - name: Build and install with maturin | |
| shell: bash | |
| run: | | |
| maturin build --release | |
| pip install target/wheels/*.whl | |
| - name: Run tests | |
| run: pytest -vls test/ | |
| sdist: | |
| if: startsWith(github.ref, 'refs/tags') | |
| needs: build-and-test | |
| name: Source distribution | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4.2.2 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Build sdist | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| command: sdist | |
| args: --out dist | |
| - name: Upload sdist | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-sdist | |
| path: dist/*.tar.gz | |
| wheels_linux: | |
| if: startsWith(github.ref, 'refs/tags') | |
| needs: build-and-test | |
| name: Build Linux ${{ matrix.target }} wheels | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| target: [x86_64, aarch64] | |
| steps: | |
| - uses: actions/checkout@v4.2.2 | |
| - name: Set up QEMU | |
| if: matrix.target == 'aarch64' | |
| uses: docker/setup-qemu-action@v3 | |
| with: | |
| platforms: arm64 | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| args: --release --out dist | |
| manylinux: auto | |
| before-script-linux: | | |
| # Install Rust in manylinux container | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
| source $HOME/.cargo/env | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-linux-${{ matrix.target }} | |
| path: dist/*.whl | |
| if-no-files-found: error | |
| wheels_macos: | |
| if: startsWith(github.ref, 'refs/tags') | |
| needs: build-and-test | |
| name: Build macOS ${{ matrix.target }} wheels | |
| runs-on: macos-latest | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| target: [x86_64, aarch64] | |
| steps: | |
| - uses: actions/checkout@v4.2.2 | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target == 'aarch64' && 'aarch64-apple-darwin' || 'x86_64-apple-darwin' }} | |
| args: --release --out dist | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-macos-${{ matrix.target }} | |
| path: dist/*.whl | |
| if-no-files-found: error | |
| wheels_windows: | |
| if: startsWith(github.ref, 'refs/tags') | |
| needs: build-and-test | |
| name: Build Windows wheels | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4.2.2 | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| args: --release --out dist | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-windows | |
| path: dist/*.whl | |
| if-no-files-found: error | |
| publish-wheels: | |
| if: startsWith(github.ref, 'refs/tags') | |
| needs: [sdist, wheels_linux, wheels_macos, wheels_windows] | |
| name: Publish wheels | |
| runs-on: ubuntu-latest | |
| environment: pypi | |
| permissions: | |
| id-token: write | |
| steps: | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| pattern: wheels-* | |
| merge-multiple: true | |
| - name: Publish to PyPI | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| command: upload | |
| args: --non-interactive dist/* |