Contributing refresh #745
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| check_python: | |
| name: Check Python ${{ matrix.python-version }}, ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| python-version: [ | |
| "3.9", "3.10", "3.11", "3.12", "3.13", "3.14" | |
| ] | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| toolchain: stable | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -VV | |
| python -m site | |
| python -m pip install --upgrade pip setuptools wheel | |
| python -m pip install --upgrade coverage[toml] tox tox-gh-actions | |
| - name: Run tox targets for ${{ matrix.python-version }} | |
| run: python -m tox | |
| check_rust: | |
| name: Check Rust | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| toolchain: stable | |
| - name: Print versions | |
| run: cargo version --verbose && cargo clippy --version | |
| - name: Check formatting | |
| run: cargo fmt --check | |
| working-directory: ./rust | |
| - name: Run tests | |
| run: cargo test --no-default-features | |
| working-directory: ./rust | |
| - name: Run linter (clippy) | |
| run: cargo clippy --all-targets --all-features -- -D warnings | |
| working-directory: ./rust | |
| benchmarks: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Setup python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| allow-prereleases: true | |
| # Temporarily install hardcoded dependencies here. | |
| # Codspeed doesn't work well with tox, as it runs the tox installation process as part of the benchmarking | |
| # process, which is very slow. | |
| - name: Install dependencies | |
| run: | | |
| python -VV | |
| uv venv | |
| uv pip install pytest==7.4.4 pyyaml==6.0.1 pytest-codspeed==3.2.0 Django==5.1.1 /home/runner/work/grimp/grimp | |
| - name: Run benchmarks | |
| uses: CodSpeedHQ/action@v4 | |
| with: | |
| token: ${{ secrets.CODSPEED_TOKEN }} | |
| mode: instrumentation | |
| run: | | |
| uv run pytest tests/benchmarking/ --codspeed |