mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-26 06:21:07 -05:00
Tox: * Add Tox factor for extras (all, none, individual ESP). For now, only break out ESPs that have specific extra dependencies (amazon_ses, sparkpost). * Install most package dependencies (including extras) through the package itself. * Use new runtests.py environment vars to limit test tags when Tox isn't installing all extras. Travis: * Rework matrix to request specific TOXENVs directly; drop tox-travis. Test runner (runtests.py): * Centralize RUN_LIVE_TESTS logic in runtests.py * Add ANYMAIL_ONLY_TEST and ANYMAIL_SKIP_TESTS env vars (comma-separated lists of tags) Test implementations: * Tag all ESP-specific tests with ESP * Tag live tests with "live" * Don't import ESP-specific packages at test module level. (Test discovery imports test modules before tag-based filtering.) Closes #104
68 lines
2.4 KiB
YAML
68 lines
2.4 KiB
YAML
sudo: false
|
|
language: python
|
|
dist: xenial
|
|
|
|
branches:
|
|
# Only run builds on release branches.
|
|
# (Builds will *also* still run on pull requests;
|
|
# this avoids duplicate builds on the PR *branches*, too.)
|
|
only:
|
|
- master
|
|
- /^v\d+\.\d+(\.\d+)?(-\S*)?$/
|
|
|
|
env:
|
|
global:
|
|
# Let Travis report failures that tox.ini would normally ignore:
|
|
- TOX_FORCE_IGNORE_OUTCOME=false
|
|
|
|
matrix:
|
|
include:
|
|
- python: 3.6
|
|
env: TOXENV="lint,docs"
|
|
|
|
# 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
|
|
|
|
# Live API integration tests are only run on a few, representative Python/Django version
|
|
# combinations, to avoid rapidly consuming the testing accounts' entire send allotments.
|
|
|
|
# Django 1.11: Python 2.7, 3.4, 3.5, or 3.6
|
|
- { env: TOXENV=django111-py27-all RUN_LIVE_TESTS=true, python: 2.7 }
|
|
- { env: TOXENV=django111-py34-all, python: 3.4 }
|
|
- { env: TOXENV=django111-py35-all, python: 3.5 }
|
|
- { env: TOXENV=django111-py36-all, python: 3.6 }
|
|
- { env: TOXENV=django111-pypy-all, python: pypy2.7-6.0 }
|
|
# Django 2.0: Python 3.5+
|
|
- { env: TOXENV=django20-py35-all, python: 3.5 }
|
|
- { env: TOXENV=django20-py36-all, python: 3.6 }
|
|
- { env: TOXENV=django20-pypy3-all, python: pypy3.5-6.0 }
|
|
# Django 2.1: Python 3.5, 3.6, or 3.7
|
|
- { env: TOXENV=django21-py35-all, python: 3.5 }
|
|
- { env: TOXENV=django21-py36-all RUN_LIVE_TESTS=true, python: 3.6 }
|
|
- { env: TOXENV=django21-py37-all, python: 3.7 }
|
|
- { env: TOXENV=django21-pypy3-all, python: pypy3.5-6.0 }
|
|
# Django 2.2: Python 3.5, 3.6, or 3.7
|
|
- { env: TOXENV=django22-py35-all, python: 3.5 }
|
|
- { env: TOXENV=django22-py36-all, python: 3.6 }
|
|
- { env: TOXENV=django22-py37-all, python: 3.7 }
|
|
- { env: TOXENV=django22-pypy3-all, python: pypy3.5-6.0 }
|
|
# Django development master (direct from GitHub source):
|
|
- { env: TOXENV=djangoMaster-py36-all, python: 3.6 }
|
|
# Install without optional extras (don't need to cover entire matrix)
|
|
- { env: TOXENV=django21-py37-none, python: 3.7 }
|
|
- { env: TOXENV=django21-py37-amazon_ses, python: 3.7 }
|
|
- { env: TOXENV=django21-py37-sparkpost, python: 3.7 }
|
|
|
|
allow_failures:
|
|
- env: TOXENV=djangoMaster-py36-all
|
|
python: 3.6
|
|
|
|
cache: pip
|
|
|
|
install:
|
|
# pin tox to avoid https://github.com/tox-dev/tox/issues/1160
|
|
- pip install tox~=3.6.1
|
|
|
|
script:
|
|
- tox
|