CI: Refactor workflows, update test matrix

* Split test, integration-test, and release workflows,
  simplifying config and logic for each.
* Use environment to separate secrets for release workflow.
* Update test matrix with newer Django and Python versions.
This commit is contained in:
medmunds
2022-01-07 11:21:26 -08:00
committed by Mike Edmunds
parent 26d2b5caa0
commit 8b0425f784
8 changed files with 433 additions and 236 deletions

15
tox.ini
View File

@@ -3,11 +3,12 @@ envlist =
# Factors: django-python-extras
# Test these environments first, to catch most errors early...
lint
django32-py39-all
django40-py310-all
django20-py35-all
docs
# ... then test all the other supported combinations:
django32-py{36,37,38,py3}-all
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
@@ -16,7 +17,7 @@ envlist =
# ... then prereleases (if available):
djangoDev-py{38,39,310,py3}-all
# ... then partial installation (limit extras):
django31-py37-{none,amazon_ses,postal}
django40-py310-{none,amazon_ses,postal}
# ... then older versions of some dependencies:
django22-py37-all-old_urllib3
@@ -28,6 +29,7 @@ deps =
django30: django~=3.0.0
django31: django~=3.1.0
django32: django~=3.2.0
django40: django~=4.0.0
djangoDev: https://github.com/django/django/tarball/main
old_urllib3: urllib3<1.25
extras =
@@ -40,7 +42,14 @@ setenv =
# tell runtests.py to limit some test tags based on extras factor
none: ANYMAIL_SKIP_TESTS=amazon_ses,postal
amazon_ses: ANYMAIL_ONLY_TEST=amazon_ses
mailgun: ANYMAIL_ONLY_TEST=mailgun
mailjet: ANYMAIL_ONLY_TEST=mailjet
mandrill: ANYMAIL_ONLY_TEST=mandrill
postal: ANYMAIL_ONLY_TEST=postal
postmark: ANYMAIL_ONLY_TEST=postmark
sendgrid: ANYMAIL_ONLY_TEST=sendgrid
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}