tornado/.github/workflows/test.yml

78 lines
2.4 KiB
YAML

# The "test" workflow is run on every PR and runs tests across all
# supported python versions and a range of configurations
# specified in tox.ini. Also see the "build" workflow which is only
# run for release branches and covers platforms other than linux-amd64
# (Platform-specific issues are rare these days so we don't want to
# take that time on every build).
name: Test
on: pull_request
jobs:
# Before starting the full build matrix, run one test configuration
# and the linter (the `black` linter is especially likely to catch
# first-time contributors).
test_quick:
name: Run quick tests
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
name: Install Python
with:
# Lint python version must be synced with tox.ini
python-version: '3.8'
- name: Install tox
run: python -m pip install tox -c requirements.txt
- name: Run test suite
run: python -m tox -e py38,lint
test_tox:
name: Run full tests
needs: test_quick
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- python: '3.8'
tox_env: py38-full
- python: '3.9'
tox_env: py39-full
- python: '3.10'
tox_env: py310-full
- python: '3.10.8'
# Early versions of 3.10 and 3.11 had different deprecation
# warnings in asyncio. Test with them too to make sure everything
# works the same way.
tox_env: py310-full
- python: '3.11'
tox_env: py311-full
- python: '3.11.0'
tox_env: py311-full
- python: '3.12.0-alpha - 3.12'
tox_env: py312-full
- python: 'pypy-3.8'
# Pypy is a lot slower due to jit warmup costs, so don't run the
# "full" test config there.
tox_env: pypy3
- python: '3.8'
# Docs python version must be synced with tox.ini
tox_env: docs
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
name: Install Python
with:
python-version: ${{ matrix.python}}
- name: Install apt packages
run: sudo apt-get update && sudo apt-get install libcurl4-openssl-dev
- name: Install tox
run: python -m pip install tox -c requirements.txt
- name: Run test suite
run: python -m tox -e ${{ matrix.tox_env }}