name: Tests
on:
push:
branches:
- main
pull_request:
types:
- opened
- reopened
- synchronize
env:
HATCH_VERSION: "1.14.2"
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
jobs:
tests:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Hatch
uses: pypa/hatch@install
with:
version: "${{ env.HATCH_VERSION }}"
- name: Run tests and generate coverage report
run: hatch run test:all-cov
linting:
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10" # needed to check MCP features with mypy
- name: Install Hatch
uses: pypa/hatch@install
with:
version: "${{ env.HATCH_VERSION }}"
- name: Ruff - check format and linting
run: hatch run fmt-check
- name: Ty - check types
run: hatch run test:types