---
name: Ubuntu

on:
    push:
        branches:
            - master
    pull_request:
        branches:
            - master

jobs:
    tests:
        runs-on: ubuntu-latest

        strategy:
            fail-fast: false
            matrix:
                python-version:
                    - '3.10'
                    - '3.11'
                    - '3.12'
                    - '3.13'
                    - '3.14'
                    - pypy3.11

        steps:
            - uses: actions/checkout@v6

            - name: Set up Python ${{ matrix.python-version }}
              uses: actions/setup-python@v6
              with:
                  python-version: ${{ matrix.python-version }}

            - name: Run tests
              run: |
                  pip install --upgrade pip
                  pip install --upgrade tox
                  tox -e py

            - name: Upload coverage report
              uses: codecov/codecov-action@v5
