Skip to content

Contributing refresh #745

Contributing refresh

Contributing refresh #745

Workflow file for this run

---
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