name: Run Tests
on: [push, pull_request]
jobs:
  pytest:
    name: pytest
    runs-on: ubuntu-22.04
    strategy:
      # You can use PyPy versions in python-version.
      # For example, pypy2 and pypy3
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python-version:
          - "3.7"
          - "3.8"
          - "3.9"
          - "3.10"
          - "3.11"
          - "3.12"
          - "3.13"
    env:
      OS: ${{ matrix.os }}
      PYTHON: ${{ matrix.python-version }}

    steps:
      - uses: actions/checkout@v4

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

      - name: Run Pytest
        run: |
          pip install -e ".[tests]"
          pytest --cov --cov-fail-under=100

      - name: Coverage
        uses: codecov/codecov-action@v5
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          fail_ci_if_error: true # optional (default = false)
