name: Tox Test

on:
  - push
  - pull_request

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14', pypy3.10, pypy3.11]

    steps:
    - uses: actions/checkout@v5
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v6
      with:
        python-version: ${{ matrix.python-version }}
        allow-prereleases: true
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install tox tox-gh-actions
    - name: Test with tox
      run: tox

  build-dist:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Set up Python 3.x
      uses: actions/setup-python@v6
      with:
        python-version: '3.x'
    - name: Build and check distributions
      run: |
        python -m pip install --upgrade pip
        python -m pip install build twine
        python -m build --sdist --wheel --outdir dist/
        python -m twine check dist/*
