| 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: "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: "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: "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=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 |