blob: 38324ee894e9f61bcdf219f4a3ac4a3037f1740c [file] [log] [blame]
sudo: false
language: python
cache:
directories:
- $HOME/.cache/pip
env:
global:
- LC_ALL=en_US.UTF-8
matrix:
include:
- language: generic
os: osx
osx_image: xcode8
env: TOXENV=py27
- language: generic
os: osx
osx_image: xcode8
env: TOXENV=py27 OPENSSL=1.1.0
- python: "2.6" # these are just to make travis's UI a bit prettier
env: TOXENV=py26
- python: "2.7"
env: TOXENV=py27
- python: "3.3"
env: TOXENV=py33
- python: "3.4"
env: TOXENV=py34
- python: "3.5"
env: TOXENV=py35
- python: "3.6"
env: TOXENV=py36
- python: "pypy"
env: TOXENV=pypy
# Also run the tests against cryptography master.
- python: "2.6"
env: TOXENV=py26-cryptographyMaster
- python: "2.7"
env: TOXENV=py27-cryptographyMaster
- python: "3.3"
env: TOXENV=py33-cryptographyMaster
- python: "3.4"
env: TOXENV=py34-cryptographyMaster
- python: "3.5"
env: TOXENV=py35-cryptographyMaster
- python: "3.6"
env: TOXENV=py36-cryptographyMaster
- python: "pypy"
env: TOXENV=pypy-cryptographyMaster
# And current minimum cryptography version.
- python: "2.6"
env: TOXENV=py26-cryptographyMinimum
- python: "2.7"
env: TOXENV=py27-cryptographyMinimum
- python: "3.3"
env: TOXENV=py33-cryptographyMinimum
- python: "3.4"
env: TOXENV=py34-cryptographyMinimum
- python: "3.5"
env: TOXENV=py35-cryptographyMinimum
- python: "3.6"
env: TOXENV=py36-cryptographyMinimum
- python: "pypy"
env: TOXENV=pypy-cryptographyMinimum
# Make sure we don't break Twisted or urllib3
- python: "2.7"
env: TOXENV=py27-twistedMaster
- python: "3.5"
env: TOXENV=py35-urllib3Master
# Meta
- python: "2.7"
env: TOXENV=check-manifest
- python: "2.7"
env: TOXENV=pypi-readme
- python: "2.7"
env: TOXENV=flake8
- python: "2.7"
env: TOXENV=docs
# Let the cryptography master builds fail because they might be caused by
# cryptography changes that are beyond our control.
allow_failures:
- env: TOXENV=py26-cryptographyMaster
- env: TOXENV=py27-cryptographyMaster
- env: TOXENV=py33-cryptographyMaster
- env: TOXENV=py34-cryptographyMaster
- env: TOXENV=py35-cryptographyMaster
- env: TOXENV=py36-cryptographyMaster
- env: TOXENV=pypy-cryptographyMaster
install:
- |
if [[ "$(uname -s)" == 'Darwin' ]]; then
brew update
if [[ "${OPENSSL}" == "1.1.0" ]]; then
brew install openssl@1.1
else
brew upgrade openssl
fi
curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py --user
pip install --user virtualenv
else
# install our own pypy. This can be removed if and when Travis gets a reasonably up to date pypy
if [[ "${TOXENV}" = pypy* ]]; then
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
PYENV_ROOT="$HOME/.pyenv"
PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
pyenv install pypy-5.4.1
pyenv global pypy-5.4.1
fi
pip install virtualenv
fi
python -m virtualenv ~/.venv
~/.venv/bin/pip install tox coverage
script:
- |
if [[ "$(uname -s)" == 'Darwin' ]]; then
# set our flags to use homebrew openssl
export ARCHFLAGS="-arch x86_64"
if [[ "${OPENSSL}" == "1.1.0" ]]; then
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CFLAGS="-I/usr/local/opt/openssl@1.1/include"
export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
else
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CFLAGS="-I/usr/local/opt/openssl/include"
export PATH="/usr/local/opt/openssl/bin:$PATH"
fi
fi
# activate the pypy env we installed via our custom pyenv in the install stage
if [[ "${TOXENV}" == "pypy" ]]; then
PYENV_ROOT="$HOME/.pyenv"
PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
fi
openssl version
~/.venv/bin/tox -v
after_script:
- ./.travis/upload_coverage.sh
notifications:
email: false