Python 3.14 support #62
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build | |
| on: [push, pull_request, workflow_dispatch] | |
| jobs: | |
| test: | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: 'check' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| tox_env: 'check' | |
| os: 'ubuntu-latest' | |
| - name: 'docs' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| tox_env: 'docs' | |
| os: 'ubuntu-latest' | |
| - name: 'py39-cover (ubuntu/x86_64)' | |
| artifact: 'py39-ubuntu-x86_64' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'x64' | |
| tox_env: 'py39-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'py39-cover (windows/AMD64)' | |
| artifact: 'py39-windows-AMD64' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'x64' | |
| tox_env: 'py39-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'py39-cover (macos/arm64)' | |
| artifact: 'py39-macos-arm64' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'arm64' | |
| tox_env: 'py39-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'py39-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'py39-ubuntu-x86_64-manylinux' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'x64' | |
| tox_env: 'py39-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp39-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py39-nocov (ubuntu/x86_64/musllinux)' | |
| artifact: 'py39-ubuntu-x86_64-musllinux' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'x64' | |
| tox_env: 'py39-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp39-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py39-nocov (ubuntu/aarch64/manylinux)' | |
| artifact: 'py39-ubuntu-aarch64-manylinux' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'x64' | |
| tox_env: 'py39-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp39-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py39-nocov (ubuntu/aarch64/musllinux)' | |
| artifact: 'py39-ubuntu-aarch64-musllinux' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'x64' | |
| tox_env: 'py39-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp39-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py39-nocov (windows/AMD64)' | |
| artifact: 'py39-windows-AMD64' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'x64' | |
| tox_env: 'py39-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: 'cp39-*' | |
| cibw_ft: 'false' | |
| os: 'windows-latest' | |
| - name: 'py39-nocov (macos/arm64)' | |
| artifact: 'py39-macos-arm64' | |
| python: '3.9' | |
| toxpython: 'python3.9' | |
| python_arch: 'arm64' | |
| tox_env: 'py39-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: 'cp39-*' | |
| cibw_ft: 'false' | |
| os: 'macos-latest' | |
| - name: 'py310-cover (ubuntu/x86_64)' | |
| artifact: 'py310-ubuntu-x86_64' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'x64' | |
| tox_env: 'py310-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'py310-cover (windows/AMD64)' | |
| artifact: 'py310-windows-AMD64' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'x64' | |
| tox_env: 'py310-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'py310-cover (macos/arm64)' | |
| artifact: 'py310-macos-arm64' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'arm64' | |
| tox_env: 'py310-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'py310-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'py310-ubuntu-x86_64-manylinux' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'x64' | |
| tox_env: 'py310-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp310-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py310-nocov (ubuntu/x86_64/musllinux)' | |
| artifact: 'py310-ubuntu-x86_64-musllinux' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'x64' | |
| tox_env: 'py310-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp310-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py310-nocov (ubuntu/aarch64/manylinux)' | |
| artifact: 'py310-ubuntu-aarch64-manylinux' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'x64' | |
| tox_env: 'py310-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp310-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py310-nocov (ubuntu/aarch64/musllinux)' | |
| artifact: 'py310-ubuntu-aarch64-musllinux' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'x64' | |
| tox_env: 'py310-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp310-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py310-nocov (windows/AMD64)' | |
| artifact: 'py310-windows-AMD64' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'x64' | |
| tox_env: 'py310-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: 'cp310-*' | |
| cibw_ft: 'false' | |
| os: 'windows-latest' | |
| - name: 'py310-nocov (macos/arm64)' | |
| artifact: 'py310-macos-arm64' | |
| python: '3.10' | |
| toxpython: 'python3.10' | |
| python_arch: 'arm64' | |
| tox_env: 'py310-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: 'cp310-*' | |
| cibw_ft: 'false' | |
| os: 'macos-latest' | |
| - name: 'py311-cover (ubuntu/x86_64)' | |
| artifact: 'py311-ubuntu-x86_64' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'x64' | |
| tox_env: 'py311-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'py311-cover (windows/AMD64)' | |
| artifact: 'py311-windows-AMD64' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'x64' | |
| tox_env: 'py311-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'py311-cover (macos/arm64)' | |
| artifact: 'py311-macos-arm64' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'arm64' | |
| tox_env: 'py311-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'py311-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'py311-ubuntu-x86_64-manylinux' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'x64' | |
| tox_env: 'py311-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp311-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py311-nocov (ubuntu/x86_64/musllinux)' | |
| artifact: 'py311-ubuntu-x86_64-musllinux' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'x64' | |
| tox_env: 'py311-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp311-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py311-nocov (ubuntu/aarch64/manylinux)' | |
| artifact: 'py311-ubuntu-aarch64-manylinux' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'x64' | |
| tox_env: 'py311-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp311-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py311-nocov (ubuntu/aarch64/musllinux)' | |
| artifact: 'py311-ubuntu-aarch64-musllinux' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'x64' | |
| tox_env: 'py311-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp311-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py311-nocov (windows/AMD64)' | |
| artifact: 'py311-windows-AMD64' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'x64' | |
| tox_env: 'py311-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: 'cp311-*' | |
| cibw_ft: 'false' | |
| os: 'windows-latest' | |
| - name: 'py311-nocov (macos/arm64)' | |
| artifact: 'py311-macos-arm64' | |
| python: '3.11' | |
| toxpython: 'python3.11' | |
| python_arch: 'arm64' | |
| tox_env: 'py311-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: 'cp311-*' | |
| cibw_ft: 'false' | |
| os: 'macos-latest' | |
| - name: 'py312-cover (ubuntu/x86_64)' | |
| artifact: 'py312-ubuntu-x86_64' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'x64' | |
| tox_env: 'py312-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'py312-cover (windows/AMD64)' | |
| artifact: 'py312-windows-AMD64' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'x64' | |
| tox_env: 'py312-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'py312-cover (macos/arm64)' | |
| artifact: 'py312-macos-arm64' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'arm64' | |
| tox_env: 'py312-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'py312-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'py312-ubuntu-x86_64-manylinux' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'x64' | |
| tox_env: 'py312-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp312-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py312-nocov (ubuntu/x86_64/musllinux)' | |
| artifact: 'py312-ubuntu-x86_64-musllinux' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'x64' | |
| tox_env: 'py312-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp312-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py312-nocov (ubuntu/aarch64/manylinux)' | |
| artifact: 'py312-ubuntu-aarch64-manylinux' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'x64' | |
| tox_env: 'py312-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp312-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py312-nocov (ubuntu/aarch64/musllinux)' | |
| artifact: 'py312-ubuntu-aarch64-musllinux' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'x64' | |
| tox_env: 'py312-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp312-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py312-nocov (windows/AMD64)' | |
| artifact: 'py312-windows-AMD64' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'x64' | |
| tox_env: 'py312-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: 'cp312-*' | |
| cibw_ft: 'false' | |
| os: 'windows-latest' | |
| - name: 'py312-nocov (macos/arm64)' | |
| artifact: 'py312-macos-arm64' | |
| python: '3.12' | |
| toxpython: 'python3.12' | |
| python_arch: 'arm64' | |
| tox_env: 'py312-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: 'cp312-*' | |
| cibw_ft: 'false' | |
| os: 'macos-latest' | |
| - name: 'py313-cover (ubuntu/x86_64)' | |
| artifact: 'py313-ubuntu-x86_64' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'x64' | |
| tox_env: 'py313-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'py313-cover (windows/AMD64)' | |
| artifact: 'py313-windows-AMD64' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'x64' | |
| tox_env: 'py313-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'py313-cover (macos/arm64)' | |
| artifact: 'py313-macos-arm64' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'arm64' | |
| tox_env: 'py313-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'py313-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'py313-ubuntu-x86_64-manylinux' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'x64' | |
| tox_env: 'py313-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp313-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py313-nocov (ubuntu/x86_64/musllinux)' | |
| artifact: 'py313-ubuntu-x86_64-musllinux' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'x64' | |
| tox_env: 'py313-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp313-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py313-nocov (ubuntu/aarch64/manylinux)' | |
| artifact: 'py313-ubuntu-aarch64-manylinux' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'x64' | |
| tox_env: 'py313-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp313-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py313-nocov (ubuntu/aarch64/musllinux)' | |
| artifact: 'py313-ubuntu-aarch64-musllinux' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'x64' | |
| tox_env: 'py313-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp313-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py313-nocov (windows/AMD64)' | |
| artifact: 'py313-windows-AMD64' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'x64' | |
| tox_env: 'py313-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: 'cp313-*' | |
| cibw_ft: 'false' | |
| os: 'windows-latest' | |
| - name: 'py313-nocov (macos/arm64)' | |
| artifact: 'py313-macos-arm64' | |
| python: '3.13' | |
| toxpython: 'python3.13' | |
| python_arch: 'arm64' | |
| tox_env: 'py313-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: 'cp313-*' | |
| cibw_ft: 'false' | |
| os: 'macos-latest' | |
| - name: 'py313-ft-cover (ubuntu/x86_64)' | |
| artifact: 'py313-ft-ubuntu-x86_64' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py313-ft-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'py313-ft-cover (windows/AMD64)' | |
| artifact: 'py313-ft-windows-AMD64' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py313-ft-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'py313-ft-cover (macos/arm64)' | |
| artifact: 'py313-ft-macos-arm64' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'arm64-freethreaded' | |
| tox_env: 'py313-ft-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'py313-ft-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'py313-ft-ubuntu-x86_64-manylinux' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py313-ft-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp313t-*manylinux*' | |
| cibw_ft: 'true' | |
| os: 'ubuntu-latest' | |
| - name: 'py313-ft-nocov (ubuntu/x86_64/musllinux)' | |
| artifact: 'py313-ft-ubuntu-x86_64-musllinux' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py313-ft-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp313t-*musllinux*' | |
| cibw_ft: 'true' | |
| os: 'ubuntu-latest' | |
| - name: 'py313-ft-nocov (ubuntu/aarch64/manylinux)' | |
| artifact: 'py313-ft-ubuntu-aarch64-manylinux' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py313-ft-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp313t-*manylinux*' | |
| cibw_ft: 'true' | |
| os: 'ubuntu-latest' | |
| - name: 'py313-ft-nocov (ubuntu/aarch64/musllinux)' | |
| artifact: 'py313-ft-ubuntu-aarch64-musllinux' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py313-ft-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp313t-*musllinux*' | |
| cibw_ft: 'true' | |
| os: 'ubuntu-latest' | |
| - name: 'py313-ft-nocov (windows/AMD64)' | |
| artifact: 'py313-ft-windows-AMD64' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py313-ft-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: 'cp313t-*' | |
| cibw_ft: 'true' | |
| os: 'windows-latest' | |
| - name: 'py313-ft-nocov (macos/arm64)' | |
| artifact: 'py313-ft-macos-arm64' | |
| python: '3.13' | |
| toxpython: 'python3.13t' | |
| python_arch: 'arm64-freethreaded' | |
| tox_env: 'py313-ft-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: 'cp313t-*' | |
| cibw_ft: 'true' | |
| os: 'macos-latest' | |
| - name: 'py314-cover (ubuntu/x86_64)' | |
| artifact: 'py314-ubuntu-x86_64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'x64' | |
| tox_env: 'py314-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'py314-cover (windows/AMD64)' | |
| artifact: 'py314-windows-AMD64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'x64' | |
| tox_env: 'py314-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'py314-cover (macos/arm64)' | |
| artifact: 'py314-macos-arm64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'arm64' | |
| tox_env: 'py314-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'py314-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'py314-ubuntu-x86_64-manylinux' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'x64' | |
| tox_env: 'py314-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp314-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py314-nocov (ubuntu/x86_64/musllinux)' | |
| artifact: 'py314-ubuntu-x86_64-musllinux' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'x64' | |
| tox_env: 'py314-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp314-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py314-nocov (ubuntu/aarch64/manylinux)' | |
| artifact: 'py314-ubuntu-aarch64-manylinux' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'x64' | |
| tox_env: 'py314-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp314-*manylinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py314-nocov (ubuntu/aarch64/musllinux)' | |
| artifact: 'py314-ubuntu-aarch64-musllinux' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'x64' | |
| tox_env: 'py314-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp314-*musllinux*' | |
| cibw_ft: 'false' | |
| os: 'ubuntu-latest' | |
| - name: 'py314-nocov (windows/AMD64)' | |
| artifact: 'py314-windows-AMD64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'x64' | |
| tox_env: 'py314-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: 'cp314-*' | |
| cibw_ft: 'false' | |
| os: 'windows-latest' | |
| - name: 'py314-nocov (macos/arm64)' | |
| artifact: 'py314-macos-arm64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14' | |
| python_arch: 'arm64' | |
| tox_env: 'py314-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: 'cp314-*' | |
| cibw_ft: 'false' | |
| os: 'macos-latest' | |
| - name: 'py314-ft-cover (ubuntu/x86_64)' | |
| artifact: 'py314-ft-ubuntu-x86_64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py314-ft-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'py314-ft-cover (windows/AMD64)' | |
| artifact: 'py314-ft-windows-AMD64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py314-ft-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'py314-ft-cover (macos/arm64)' | |
| artifact: 'py314-ft-macos-arm64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'arm64-freethreaded' | |
| tox_env: 'py314-ft-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'py314-ft-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'py314-ft-ubuntu-x86_64-manylinux' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py314-ft-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp314t-*manylinux*' | |
| cibw_ft: 'true' | |
| os: 'ubuntu-latest' | |
| - name: 'py314-ft-nocov (ubuntu/x86_64/musllinux)' | |
| artifact: 'py314-ft-ubuntu-x86_64-musllinux' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py314-ft-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: 'cp314t-*musllinux*' | |
| cibw_ft: 'true' | |
| os: 'ubuntu-latest' | |
| - name: 'py314-ft-nocov (ubuntu/aarch64/manylinux)' | |
| artifact: 'py314-ft-ubuntu-aarch64-manylinux' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py314-ft-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp314t-*manylinux*' | |
| cibw_ft: 'true' | |
| os: 'ubuntu-latest' | |
| - name: 'py314-ft-nocov (ubuntu/aarch64/musllinux)' | |
| artifact: 'py314-ft-ubuntu-aarch64-musllinux' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py314-ft-nocov' | |
| cibw_arch: 'aarch64' | |
| cibw_build: 'cp314t-*musllinux*' | |
| cibw_ft: 'true' | |
| os: 'ubuntu-latest' | |
| - name: 'py314-ft-nocov (windows/AMD64)' | |
| artifact: 'py314-ft-windows-AMD64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'x64-freethreaded' | |
| tox_env: 'py314-ft-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: 'cp314t-*' | |
| cibw_ft: 'true' | |
| os: 'windows-latest' | |
| - name: 'py314-ft-nocov (macos/arm64)' | |
| artifact: 'py314-ft-macos-arm64' | |
| python: '3.14-dev' | |
| toxpython: 'python3.14t' | |
| python_arch: 'arm64-freethreaded' | |
| tox_env: 'py314-ft-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: 'cp314t-*' | |
| cibw_ft: 'true' | |
| os: 'macos-latest' | |
| - name: 'pypy39-cover (ubuntu/x86_64)' | |
| artifact: 'pypy39-ubuntu-x86_64' | |
| python: 'pypy-3.9' | |
| toxpython: 'pypy3.9' | |
| python_arch: 'x64' | |
| tox_env: 'pypy39-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'pypy39-cover (windows/AMD64)' | |
| artifact: 'pypy39-windows-AMD64' | |
| python: 'pypy-3.9' | |
| toxpython: 'pypy3.9' | |
| python_arch: 'x64' | |
| tox_env: 'pypy39-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'pypy39-cover (macos/arm64)' | |
| artifact: 'pypy39-macos-arm64' | |
| python: 'pypy-3.9' | |
| toxpython: 'pypy3.9' | |
| python_arch: 'arm64' | |
| tox_env: 'pypy39-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'pypy39-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'pypy39-ubuntu-x86_64-manylinux' | |
| python: 'pypy-3.9' | |
| toxpython: 'pypy3.9' | |
| python_arch: 'x64' | |
| tox_env: 'pypy39-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'pypy39-nocov (windows/AMD64)' | |
| artifact: 'pypy39-windows-AMD64' | |
| python: 'pypy-3.9' | |
| toxpython: 'pypy3.9' | |
| python_arch: 'x64' | |
| tox_env: 'pypy39-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'pypy39-nocov (macos/arm64)' | |
| artifact: 'pypy39-macos-arm64' | |
| python: 'pypy-3.9' | |
| toxpython: 'pypy3.9' | |
| python_arch: 'arm64' | |
| tox_env: 'pypy39-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'pypy310-cover (ubuntu/x86_64)' | |
| artifact: 'pypy310-ubuntu-x86_64' | |
| python: 'pypy-3.10' | |
| toxpython: 'pypy3.10' | |
| python_arch: 'x64' | |
| tox_env: 'pypy310-cover' | |
| cover: true | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'pypy310-cover (windows/AMD64)' | |
| artifact: 'pypy310-windows-AMD64' | |
| python: 'pypy-3.10' | |
| toxpython: 'pypy3.10' | |
| python_arch: 'x64' | |
| tox_env: 'pypy310-cover' | |
| cover: true | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'pypy310-cover (macos/arm64)' | |
| artifact: 'pypy310-macos-arm64' | |
| python: 'pypy-3.10' | |
| toxpython: 'pypy3.10' | |
| python_arch: 'arm64' | |
| tox_env: 'pypy310-cover' | |
| cover: true | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| - name: 'pypy310-nocov (ubuntu/x86_64/manylinux)' | |
| artifact: 'pypy310-ubuntu-x86_64-manylinux' | |
| python: 'pypy-3.10' | |
| toxpython: 'pypy3.10' | |
| python_arch: 'x64' | |
| tox_env: 'pypy310-nocov' | |
| cibw_arch: 'x86_64' | |
| cibw_build: false | |
| os: 'ubuntu-latest' | |
| - name: 'pypy310-nocov (windows/AMD64)' | |
| artifact: 'pypy310-windows-AMD64' | |
| python: 'pypy-3.10' | |
| toxpython: 'pypy3.10' | |
| python_arch: 'x64' | |
| tox_env: 'pypy310-nocov' | |
| cibw_arch: 'AMD64' | |
| cibw_build: false | |
| os: 'windows-latest' | |
| - name: 'pypy310-nocov (macos/arm64)' | |
| artifact: 'pypy310-macos-arm64' | |
| python: 'pypy-3.10' | |
| toxpython: 'pypy3.10' | |
| python_arch: 'arm64' | |
| tox_env: 'pypy310-nocov' | |
| cibw_arch: 'arm64' | |
| cibw_build: false | |
| os: 'macos-latest' | |
| steps: | |
| - uses: docker/setup-qemu-action@v3 | |
| if: matrix.cibw_arch == 'aarch64' | |
| with: | |
| platforms: arm64 | |
| - uses: actions/checkout@v4 | |
| 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 cibuildwheel -r ci/requirements.txt | |
| virtualenv --version | |
| pip --version | |
| tox --version | |
| pip list --format=freeze | |
| - name: install dependencies (gdb) | |
| if: > | |
| !matrix.cibw_build && matrix.os == 'ubuntu' | |
| run: > | |
| sudo apt-get install gdb | |
| - name: cibw build and test | |
| if: matrix.cibw_build | |
| run: cibuildwheel | |
| env: | |
| TOXPYTHON: '${{ matrix.toxpython }}' | |
| CIBW_ARCHS: '${{ matrix.cibw_arch }}' | |
| CIBW_BUILD: '${{ matrix.cibw_build }}' | |
| CIBW_FREE_THREADED_SUPPORT: '${{ matrix.cibw_ft }}' | |
| CIBW_BUILD_VERBOSITY: '3' | |
| CIBW_TEST_REQUIRES: > | |
| tox | |
| tox-direct | |
| CIBW_TEST_COMMAND: > | |
| cd {project} && | |
| tox --skip-pkg-install --direct-yolo -e ${{ matrix.tox_env }} -v | |
| CIBW_TEST_COMMAND_WINDOWS: > | |
| cd /d {project} && | |
| tox --skip-pkg-install --direct-yolo -e ${{ matrix.tox_env }} -v | |
| - name: regular build and test | |
| env: | |
| TOXPYTHON: '${{ matrix.toxpython }}' | |
| if: > | |
| !matrix.cibw_build | |
| run: > | |
| tox -e ${{ matrix.tox_env }} -v | |
| - uses: coverallsapp/github-action@v2 | |
| if: matrix.cover | |
| continue-on-error: true | |
| with: | |
| parallel: true | |
| flag-name: ${{ matrix.tox_env }} | |
| - uses: codecov/codecov-action@v5 | |
| if: matrix.cover | |
| with: | |
| verbose: true | |
| flags: ${{ matrix.tox_env }} | |
| - name: check wheel | |
| if: > | |
| !matrix.cibw_ft && matrix.cibw_build | |
| run: | |
| python -mpip install --progress-bar=off twine | |
| twine check wheelhouse/*.whl | |
| - name: upload wheel | |
| uses: actions/upload-artifact@v4 | |
| if: matrix.cibw_build | |
| with: | |
| name: wheel-${{ matrix.artifact }} | |
| path: wheelhouse/*.whl | |
| finish: | |
| needs: test | |
| if: ${{ always() }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/upload-artifact/merge@v4 | |
| with: | |
| name: wheels | |
| - uses: coverallsapp/github-action@v2 | |
| with: | |
| parallel-finished: true | |
| - uses: codecov/codecov-action@v5 | |
| with: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |