name: CI

on:
  push:
    branches: ["master"]
  pull_request:
    branches: ["master"]

jobs:
  tox:
    runs-on: ubuntu-latest
    strategy:
      max-parallel: 5
      matrix:
        python-version:
        - "3.9"
        - "3.10"
        - "3.11"
        - "3.12"
        - "3.13"
        - "pypy3.9"

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install tox
      run: |
        python -m pip install --upgrade pip setuptools
        pip install --upgrade tox tox-gh-actions
    - name: Initialize tox envs
      run: |
        tox --parallel auto --notest
    - name: Test with tox
      run: |
        tox --parallel 0
    - uses: codecov/codecov-action@v5
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        files: ./coverage.xml
        disable_search: true
