sudo: true
language: python
matrix:
    include:
        - python: 2.7
          os: linux
          dist: precise
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: trusty
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: xenial
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: precise
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=1
        - python: 2.7
          os: linux
          dist: trusty
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=1
        - python: 2.7
          os: linux
          dist: xenial
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=1
        - python: 2.7
          os: linux
          dist: precise
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=2
        - python: 2.7
          os: linux
          dist: trusty
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=2
        - python: 2.7
          os: linux
          dist: xenial
          env: TOXENV=py27 RUN_INTEGRATION_TESTS=2
        - python: 3.4
          os: linux
          dist: precise
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=0
        - python: 3.4
          os: linux
          dist: trusty
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=0
        - python: 3.4
          os: linux
          dist: xenial
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=0
        - python: 3.4
          os: linux
          dist: precise
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=1
        - python: 3.4
          os: linux
          dist: trusty
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=1
        - python: 3.4
          os: linux
          dist: xenial
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=1
        - python: 3.4
          os: linux
          dist: precise
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=2
        - python: 3.4
          os: linux
          dist: trusty
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=2
        - python: 3.4
          os: linux
          dist: xenial
          env: TOXENV=py34 RUN_INTEGRATION_TESTS=2
        - python: 3.5
          os: linux
          dist: precise
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=0
        - python: 3.5
          os: linux
          dist: trusty
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=0
        - python: 3.5
          os: linux
          dist: xenial
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=0
        - python: 3.5
          os: linux
          dist: precise
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=1
        - python: 3.5
          os: linux
          dist: trusty
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=1
        - python: 3.5
          os: linux
          dist: xenial
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=1
        - python: 3.5
          os: linux
          dist: precise
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=2
        - python: 3.5
          os: linux
          dist: trusty
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=2
        - python: 3.5
          os: linux
          dist: xenial
          env: TOXENV=py35 RUN_INTEGRATION_TESTS=2
        - python: 3.6
          os: linux
          dist: precise
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=0
        - python: 3.6
          os: linux
          dist: trusty
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=0
        - python: 3.6
          os: linux
          dist: xenial
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=0
        - python: 3.6
          os: linux
          dist: precise
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=1
        - python: 3.6
          os: linux
          dist: trusty
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=1
        - python: 3.6
          os: linux
          dist: xenial
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=1
        - python: 3.6
          os: linux
          dist: precise
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=2
        - python: 3.6
          os: linux
          dist: trusty
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=2
        - python: 3.6
          os: linux
          dist: xenial
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=2
#        - python: 3.7
#          os: linux
#          dist: precise
#          env: TOXENV=py37 RUN_INTEGRATION_TESTS=0
#        - python: 3.7
#          os: linux
#          dist: trusty
#          env: TOXENV=py37 RUN_INTEGRATION_TESTS=0
        - python: 3.7
          os: linux
          dist: xenial
          env: TOXENV=py37 RUN_INTEGRATION_TESTS=0
#        - python: 3.7
#          os: linux
#          dist: precise
#          env: TOXENV=py37 RUN_INTEGRATION_TESTS=1
#        - python: 3.7
#          os: linux
#          dist: trusty
#          env: TOXENV=py37 RUN_INTEGRATION_TESTS=1
        - python: 3.7
          os: linux
          dist: xenial
          env: TOXENV=py36 RUN_INTEGRATION_TESTS=1
#        - python: 3.7
#          os: linux
#          dist: precise
#          env: TOXENV=py37 RUN_INTEGRATION_TESTS=2
#        - python: 3.7
#          os: linux
#          dist: trusty
#          env: TOXENV=py37 RUN_INTEGRATION_TESTS=2
        - python: 3.7
          os: linux
          dist: xenial
          env: TOXENV=py37 RUN_INTEGRATION_TESTS=2
        - python: 2.7
          os: linux
          dist: precise
          env: TOXENV=pep8 RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: trusty
          env: TOXENV=pep8 RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: xenial
          env: TOXENV=pep8 RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: precise
          env: TOXENV=bandit RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: trusty
          env: TOXENV=bandit RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: xenial
          env: TOXENV=bandit RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: precise
          env: TOXENV=docs RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: trusty
          env: TOXENV=docs RUN_INTEGRATION_TESTS=0
        - python: 2.7
          os: linux
          dist: xenial
          env: TOXENV=docs RUN_INTEGRATION_TESTS=0
install:
  # Pin six to >= 1.11.0 to avoid setuptools/pip race condition
  # For more info, see: https://github.com/OpenKMIP/PyKMIP/issues/435
  - pip uninstall -y six
  - pip install six>=1.11.0
  - pip install tox
  - pip install bandit
  - pip install codecov
  - pip install slugs
  - python setup.py install
script:
  - ./.travis/run.sh
after_success:
  - codecov
after_failure:
  - if [ -f "/tmp/pykmip/server.log" ]; then cat /tmp/pykmip/server.log; fi
  - if [ -f "/tmp/slugs/access.log"  ]; then cat /tmp/slugs/access.log;  fi
  - if [ -f "/tmp/slugs/error.log"   ]; then cat /tmp/slugs/error.log;   fi