CI: get GitHub test matrix from tox envlist

Stop maintaining duplicate (and often not-quite-
in-sync) test matrices in tox.ini and test.yml.
This commit is contained in:
medmunds
2022-01-30 10:53:24 -08:00
committed by Mike Edmunds
parent 3572ec59c9
commit 4d93183e5e
2 changed files with 59 additions and 88 deletions

37
tox.ini
View File

@@ -1,21 +1,30 @@
[tox]
envlist =
# Anymail supports the same Python versions as Django, plus PyPy.
# https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django
# Factors: django-python-extras
# Test these environments first, to catch most errors early...
# Test lint, docs, earliest/latest Django first, to catch most errors early...
lint
django40-py310-all
django20-py35-all
docs
# ... then test all the other supported combinations:
django40-py{38,39,py3}-all
django32-py{36,37,38,39,py3}-all
django31-py{36,37,38,39,py3}-all
django30-py{36,37,38,39,py3}-all
django22-py{35,36,37,38,39,py3}-all
django21-py{35,36,37,py3}-all
django20-py{36,py3}-all
# ... then prereleases (if available):
djangoDev-py{38,39,310,py3}-all
# Django 4.0: Python 3.8, 3.9, 3.10
django40-py{38,39,py38}-all
# Django 3.2: Python 3.6, 3.7, 3.8, 3.9
django32-py{36,37,38,39,py38}-all
# Django 3.1: Python 3.6, 3.7, 3.8, 3.9 (added in 3.1.3)
django31-py{36,37,38,39,py38}-all
# Django 3.0: Python 3.6, 3.7, 3.8, 3.9 (added in 3.0.11)
django30-py{36,37,38,39,py38}-all
# Django 2.2: Python 3.5, 3.6, 3.7, 3.8 (added in 2.2.8), 3.9 (added in 2.2.17)
django22-py{35,36,37,38,39,py38}-all
# Django 2.1: Python 3.5, 3.6, or 3.7
django21-py{35,36,37,py37}-all
# Django 2.0: Python 3.5+
django20-py{36,py36}-all
# ... then prereleases (if available) and current development:
djangoDev-py{38,39,310,py38}-all
# ... then partial installation (limit extras):
django40-py310-{none,amazon_ses,postal}
# ... then older versions of some dependencies:
@@ -51,8 +60,8 @@ setenv =
sendinblue: ANYMAIL_ONLY_TEST=sendinblue
sparkpost: ANYMAIL_ONLY_TEST=sparkpost
ignore_outcome =
# CI that wants to handle errors itself can set TOX_FORCE_IGNORE_OUTCOME=false
djangoDev: {env:TOX_FORCE_IGNORE_OUTCOME:true}
# CI that wants to handle errors itself can set TOX_OVERRIDE_IGNORE_OUTCOME=false
djangoDev: {env:TOX_OVERRIDE_IGNORE_OUTCOME:true}
args_are_paths = false
commands_pre =
python -VV
@@ -67,7 +76,7 @@ passenv =
ANYMAIL_TEST_*
[testenv:lint]
basepython = python3
basepython = python3.8
skip_install = true
passenv =
CONTINUOUS_INTEGRATION
@@ -81,7 +90,7 @@ commands =
flake8
[testenv:docs]
basepython = python3
basepython = python3.8
skip_install = true
passenv =
CONTINUOUS_INTEGRATION