name: tests
on:
  - pull_request

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-python@v5
      with:
        python-version: '3.14'
    - run: python -m pip install mypy ruff
    - run: ruff check --preview
    - run: mypy .

  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version:
          - '3.14'
          - '3.13'
          - '3.12'
          - '3.11'
          - '3.10'

    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}
    - run: python -m pip install pytest
    - run: pytest
    - name: examples
      run: |
        make examples

  docs:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-python@v5
      with:
        python-version: '3.14'
    - run: python -m pip install sphinx
    - run: python -m sphinx docs/ docs/_build/

  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-python@v5
      with:
        python-version: '3.14'
    - run: python -m pip install build
    - run: python -m build
