name: build on: [push, pull_request] jobs: test: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} timeout-minutes: 30 strategy: fail-fast: false matrix: include: - name: 'check' python: '3.9' toxpython: 'python3.9' tox_env: 'check' os: 'ubuntu-latest' - name: 'docs' python: '3.9' toxpython: 'python3.9' tox_env: 'docs' os: 'ubuntu-latest' - name: 'py38 (ubuntu)' python: '3.8' toxpython: 'python3.8' python_arch: 'x64' tox_env: 'py38' os: 'ubuntu-latest' - name: 'py38 (windows)' python: '3.8' toxpython: 'python3.8' python_arch: 'x64' tox_env: 'py38' os: 'windows-latest' - name: 'py38 (macos)' python: '3.8' toxpython: 'python3.8' tox_env: 'py38' os: 'macos-latest' - name: 'py39 (ubuntu)' python: '3.9' toxpython: 'python3.9' python_arch: 'x64' tox_env: 'py39' os: 'ubuntu-latest' - name: 'py39 (windows)' python: '3.9' toxpython: 'python3.9' python_arch: 'x64' tox_env: 'py39' os: 'windows-latest' - name: 'py39 (macos)' python: '3.9' toxpython: 'python3.9' tox_env: 'py39' os: 'macos-latest' - name: 'py310 (ubuntu)' python: '3.10' toxpython: 'python3.10' python_arch: 'x64' tox_env: 'py310' os: 'ubuntu-latest' - name: 'py310 (windows)' python: '3.10' toxpython: 'python3.10' python_arch: 'x64' tox_env: 'py310' os: 'windows-latest' - name: 'py310 (macos)' python: '3.10' toxpython: 'python3.10' tox_env: 'py310' os: 'macos-latest' - name: 'py311 (ubuntu)' python: '3.11' toxpython: 'python3.11' python_arch: 'x64' tox_env: 'py311' os: 'ubuntu-latest' - name: 'py311 (windows)' python: '3.11' toxpython: 'python3.11' python_arch: 'x64' tox_env: 'py311' os: 'windows-latest' - name: 'py311 (macos)' python: '3.11' toxpython: 'python3.11' tox_env: 'py311' os: 'macos-latest' - name: 'pypy38 (ubuntu)' python: 'pypy-3.8' toxpython: 'pypy3.8' python_arch: 'x64' tox_env: 'pypy38' os: 'ubuntu-latest' - name: 'pypy38 (windows)' python: 'pypy-3.8' toxpython: 'pypy3.8' python_arch: 'x64' tox_env: 'pypy38' os: 'windows-latest' - name: 'pypy38 (macos)' python: 'pypy-3.8' toxpython: 'pypy3.8' tox_env: 'pypy38' os: 'macos-latest' - name: 'py312 (ubuntu)' python: '3.12' toxpython: 'python3.12' python_arch: 'x64' tox_env: 'py312' os: 'ubuntu-latest' - name: 'py312 (windows)' python: '3.12' toxpython: 'python3.12' python_arch: 'x64' tox_env: 'py312' os: 'windows-latest' - name: 'py312 (macos)' python: '3.12' toxpython: 'python3.12' tox_env: 'py312' os: 'macos-latest' - name: 'py313 (ubuntu)' python: '3.13' toxpython: 'python3.13' python_arch: 'x64' tox_env: 'py313' os: 'ubuntu-latest' - name: 'py313 (windows)' python: '3.13' toxpython: 'python3.13' python_arch: 'x64' tox_env: 'py313' os: 'windows-latest' - name: 'py313 (macos)' python: '3.13' toxpython: 'python3.13' tox_env: 'py313' os: 'macos-latest' - name: 'py314 (ubuntu)' python: '3.14' toxpython: 'python3.14' python_arch: 'x64' tox_env: 'py314' os: 'ubuntu-latest' - name: 'py314 (windows)' python: '3.14' toxpython: 'python3.14' python_arch: 'x64' tox_env: 'py314' os: 'windows-latest' - name: 'py314 (macos)' python: '3.14' toxpython: 'python3.14' tox_env: 'py314' os: 'macos-latest' steps: - uses: actions/checkout@v5 with: fetch-depth: 0 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} architecture: ${{ matrix.python_arch }} - name: install dependencies run: | python -mpip install --progress-bar=off -r ci/requirements.txt virtualenv --version pip --version tox --version pip list --format=freeze - name: test env: TOXPYTHON: '${{ matrix.toxpython }}' run: > tox -e ${{ matrix.tox_env }} -v