Skip to content

GitHub Actions: Add Python 3.14 and PyPy 3.11 #160

GitHub Actions: Add Python 3.14 and PyPy 3.11

GitHub Actions: Add Python 3.14 and PyPy 3.11 #160

Workflow file for this run

name: CI
on:
push:
branches:
- master
pull_request:
jobs:
build_and_test_pinned:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@v5
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
cache: 'pip'
cache-dependency-path: 'requirements-dev-full.txt'
- run: pip install . -r requirements-dev-full.txt
- run: make test
- run: make lint
- run: make typecheck
build_and_test_old_deps:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['3.8']
steps:
- uses: actions/checkout@v5
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: 'requirements-dev.txt'
- run: |
pip install . -r requirements-dev.txt
pip install trio==0.15.0 pytest-trio==0.7.0 # trio with MultiError
pip install wsproto==0.14.0 # wsproto allowing message during REMOTE_CLOSING, etc.
- run: make test
build_and_test_pypy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['pypy-3.10','pypy-3.11']
steps:
- uses: actions/checkout@v5
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: 'requirements-dev.txt'
- run: pip install cryptography # TODO(cclauss): Fix requirements for PyPy v3.11
if: matrix.python-version == 'pypy-3.11'
- run: pip install . -r requirements-dev.txt
- run: make test
build_and_test_latest:
# use latest package versions meeting .in requirements
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['3.14']
steps:
- uses: actions/checkout@v5
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- run: pip install . -r requirements-dev.in
- run: make test