name: Build on: [push, pull_request, workflow_dispatch] jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: # Available OS Images: # https://github.com/actions/runner-images/#available-images # # Allow Python pre-releases: # https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#allow-pre-releases # See "allow-prereleases: true" below. os: [ubuntu-latest] python: # Python versions (CPython): # https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json # # Python 3.7 is tested on Ubuntu 22.04 (below). # Python 3.6 is tested on Windows (below). - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" - "3.13t" - "3.14" - "3.14t" - "3.15" - "3.15t" # PyPy versions: # - https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md # - https://downloads.python.org/pypy/ # - Only versions listed in this JSON are supported: # https://downloads.python.org/pypy/versions.json - "pypy3.6" - "pypy3.7" - "pypy3.8" - "pypy3.9" - "pypy3.10" - "pypy3.11" - "pypy3.12" # Old PyPy versions # See https://github.com/pypy/pypy/issues/3990 - "pypy3.6-v7.3.2" - "pypy3.7-v7.3.2" include: # Windows - os: windows-latest python: "3.6" - os: windows-latest python: "3.7" - os: windows-latest python: "3.8" - os: windows-latest python: "3.9" - os: windows-latest python: "3.10" - os: windows-latest python: "3.11" - os: windows-latest python: "3.12" - os: windows-latest python: "3.13" - os: windows-latest python: "3.13t" - os: windows-latest python: "3.14" - os: windows-latest python: "3.14t" - os: windows-latest python: "3.15" - os: windows-latest python: "3.15t" # macOS # Python 3.9 is the oldest version available on macOS/arm64. - os: macos-latest python: "3.9" - os: macos-latest python: "3.10" - os: macos-latest python: "3.11" - os: macos-latest python: "3.12" - os: macos-latest python: "3.13" - os: macos-latest python: "3.13t" - os: macos-latest python: "3.14" - os: macos-latest python: "3.14t" - os: macos-latest python: "3.15" - os: macos-latest python: "3.15t" # Ubuntu: test deadsnakes Python versions which are not supported by # GHA python-versions. # https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa - os: ubuntu-22.04 python: "3.7" steps: # https://github.com/actions/checkout - uses: actions/checkout@v7 - name: Setup Python # https://github.com/actions/setup-python uses: actions/setup-python@v7 with: python-version: ${{ matrix.python }} allow-prereleases: true - name: Install setuptools run: python -m pip install setuptools - name: Display the Python version run: python -VV - name: Run tests run: python runtests.py --current --verbose