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 } # Django 2.1: Python 3.5, 3.6, or 3.7 - { env: TOXENV=django21-py35-all, python: 3.5 } - { env: TOXENV=django21-py36-all, python: 3.6 } - { env: TOXENV=django21-py37-all, python: 3.7 } - { env: TOXENV=django21-pypy3-all, python: pypy3 } # 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 RUN_LIVE_TESTS=true, python: 3.7 } - { env: TOXENV=django22-pypy3-all, python: pypy3 } # Django 3.0: Python 3.6, 3.7, or 3.8 - { env: TOXENV=django30-py36-all, python: 3.6 } - { env: TOXENV=django30-py37-all, python: 3.7 } - { env: TOXENV=django30-py38-all, python: 3.8 } - { env: TOXENV=django30-pypy3-all, python: pypy3 } # Django 3.1: Python 3.6, 3.7, or 3.8 - { env: TOXENV=django31-py36-all, python: 3.6 } - { env: TOXENV=django31-py37-all, python: 3.7 } - { env: TOXENV=django31-py38-all, python: 3.8 } - { env: TOXENV=django31-pypy3-all, python: pypy3 } # Django current development (direct from GitHub source main branch): - { env: TOXENV=djangoDev-py37-all, python: 3.7 } # Install without optional extras (don't need to cover entire matrix) - { env: TOXENV=django22-py37-none, python: 3.7 } - { env: TOXENV=django22-py37-amazon_ses, python: 3.7 } - { env: TOXENV=django22-py37-sparkpost, python: 3.7 } # Test some specific older package versions - { env: TOXENV=django111-py27-all-old_urllib3, python: 3.7 } - { env: TOXENV=django22-py37-all-old_urllib3, python: 3.7 } allow_failures: - env: TOXENV=djangoDev-py37-all python: 3.7 cache: pip install: - pip install tox script: - tox