Bump pytest from 7.4.4 to 9.0.3 (#244) #487
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: CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - v2 | |
| tags: | |
| - "**" | |
| pull_request: | |
| branches: | |
| - master | |
| - v2 | |
| workflow_dispatch: {} | |
| env: | |
| COLUMNS: 150 | |
| jobs: | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - windows-latest | |
| - macos-latest | |
| python-version: | |
| - '3.10' | |
| - '3.11' | |
| - '3.12' | |
| - '3.13' | |
| - '3.14' | |
| runs-on: "${{ matrix.os }}" | |
| continue-on-error: false | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache Rust | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v2 | |
| - name: Sync project environment | |
| run: uv sync --all-groups --python "${{ matrix.python-version }}" | |
| - name: test | |
| run: uv run pytest | |
| - name: upload coverage to codecov | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| # TODO(tonybaloney): move token to `secrets.CODECOV_TOKEN` | |
| token: 48f9ff3a-6358-4607-aa5d-9cb7cada539c | |
| files: .tests-reports/coverage.xml | |
| fail_ci_if_error: true | |
| ruff: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v2 | |
| - run: uv tool run ruff check . | |
| # Rust linting | |
| clippy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - name: Cache Rust | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Run clippy | |
| run: cargo clippy --manifest-path backend/Cargo.toml -- -D warnings | |
| rustfmt: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - name: Check formatting | |
| run: cargo fmt --manifest-path backend/Cargo.toml --check | |
| # Build source distribution | |
| build-sdist: | |
| name: build sdist | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - uses: PyO3/maturin-action@v1 | |
| with: | |
| command: sdist | |
| args: --out dist | |
| rust-toolchain: stable | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: pypi_files_sdist | |
| path: dist | |
| # Build wheels for all supported platforms | |
| build: | |
| name: build on ${{ matrix.os }} (${{ matrix.target }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Linux x86_64 | |
| - os: linux | |
| target: x86_64 | |
| runs-on: ubuntu-latest | |
| manylinux: auto | |
| # Linux aarch64 | |
| - os: linux | |
| target: aarch64 | |
| runs-on: ubuntu-latest | |
| manylinux: auto | |
| # macOS aarch64 (Apple Silicon) | |
| - os: macos | |
| target: aarch64 | |
| runs-on: macos-latest | |
| # Windows x86_64 | |
| - os: windows | |
| target: x86_64 | |
| runs-on: windows-latest | |
| # Windows aarch64 | |
| - os: windows | |
| target: aarch64 | |
| python-architecture: arm64 | |
| runs-on: windows-11-arm | |
| runs-on: ${{ matrix.runs-on }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| architecture: ${{ matrix.python-architecture || 'x64' }} | |
| - name: Install twine | |
| run: pip install -U twine | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| manylinux: ${{ matrix.manylinux || 'auto' }} | |
| args: --release --out dist --interpreter 3.10 3.11 3.12 3.13 3.14 | |
| rust-toolchain: stable | |
| docker-options: -e CI | |
| before-script-linux: | | |
| if command -v yum &> /dev/null; then | |
| yum install -y openssl-devel cmake3 perl-IPC-Cmd perl-Time-Piece | |
| which cmake3 && ln -sf $(which cmake3) /usr/local/bin/cmake || true | |
| elif command -v apk &> /dev/null; then | |
| apk add --no-cache openssl-dev cmake make perl | |
| elif command -v apt-get &> /dev/null; then | |
| apt-get update && apt-get install -y libssl-dev cmake perl | |
| fi | |
| - name: List dist files | |
| run: ls -lh dist/ | |
| shell: bash | |
| - name: Check wheels | |
| run: twine check --strict dist/* | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: pypi_files_${{ matrix.os }}_${{ matrix.target }} | |
| path: dist | |
| # Publish to PyPI on tagged releases | |
| release: | |
| needs: [test, ruff, clippy, rustfmt, build-sdist, build] | |
| if: startsWith(github.ref, 'refs/tags/') | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: release | |
| permissions: | |
| id-token: write | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Get dist artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: pypi_files_* | |
| merge-multiple: true | |
| path: dist | |
| - name: List dist files | |
| run: | | |
| ls -lh dist/ | |
| echo "Total files: $(ls dist | wc -l)" | |
| - name: Test wheels integrity | |
| run: for whl in dist/*.whl; do unzip -qt "$whl"; done | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v2 | |
| - name: Publish to PyPI | |
| run: uv publish --trusted-publishing always | |
| - name: Upload to GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: | | |
| dist/* | |
| prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') }} |