tornado/.github/workflows/test.yml

98 lines
3.2 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@v4
- uses: actions/setup-python@v5
name: Install Python
with:
# Lint python version must be synced with tox.ini
python-version: '3.11'
- name: Install tox
run: python -m pip install tox -c requirements.txt
- name: Run test suite
run: python -m tox -e py311,lint
test_tox:
name: Run full tests
needs: test_quick
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- 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'
tox_env: py312-full
- python: '3.13'
tox_env: py313-full
- python: '3.14.0-alpha.1 - 3.14'
tox_env: py314-full
- python: 'pypy-3.10'
# Pypy is a lot slower due to jit warmup costs, so don't run the
# "full" test config there.
tox_env: pypy3
- python: '3.11'
# Docs python version must be synced with tox.ini
tox_env: docs
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
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 }}
test_win:
# Windows tests are fairly slow, so only run one configuration here.
# We test on windows but not mac because even though mac is a more
# fully-supported platform, it's similar enough to linux that we
# don't generally need to test it separately. Windows is different
# enough that we'll break it if we don't test it in CI.
name: Run windows tests
needs: test_quick
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.11'
- name: Run test suite
# TODO: figure out what's up with these log messages
run: py -m tornado.test --fail-if-logs=false