dist: trusty
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.3
    env: TOXENV=py27
  - language: generic
    os: osx
    osx_image: xcode8.3
    env: TOXENV=py27 OPENSSL=1.1.0
  - python: "2.7" # these are just to make travis's UI a bit prettier
    env: TOXENV=py27
  - python: "3.4"
    env: TOXENV=py34
  - python: "3.5"
    env: TOXENV=py35
  - python: "3.6"
    env: TOXENV=py36
  - python: "pypy"
    env: TOXENV=pypy
  - python: "pypy3"
    env: TOXENV=pypy3

  # Also run the tests against cryptography master.
  - python: "2.7"
    env: TOXENV=py27-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
  - python: "pypy3"
    env: TOXENV=pypy3-cryptographyMaster

  # And current minimum cryptography version.
  - python: "2.7"
    env: TOXENV=py27-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
  - python: "pypy3"
    env: TOXENV=pypy3-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=py27-cryptographyMaster
  - env: TOXENV=py34-cryptographyMaster
  - env: TOXENV=py35-cryptographyMaster
  - env: TOXENV=py36-cryptographyMaster
  - env: TOXENV=pypy-cryptographyMaster
  - env: TOXENV=pypy3-cryptographyMaster


install:
  - |
    if [[ "$(uname -s)" == 'Darwin' ]]; then
      brew update
      if [[ "${OPENSSL}" == "1.1.0" ]]; then
        brew upgrade openssl@1.1
      else
        brew upgrade openssl
      fi
      curl -O https://bootstrap.pypa.io/get-pip.py
      python get-pip.py --user
      python -m pip install --user virtualenv
    else
      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
      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
    openssl version
    ~/.venv/bin/tox -v

after_script:
  - ./.travis/upload_coverage.sh

notifications:
  email: false
