Current File : //usr/local/letsencrypt/.travis.yml
language: python

cache:
    directories:
        - $HOME/.cache/pip

before_install:
  - 'dpkg -s libaugeas0'

# using separate envs with different TOXENVs creates 4x1 Travis build
# matrix, which allows us to clearly distinguish which component under
# test has failed
matrix:
  include:
    - python: "2.7"
      env: TOXENV=cover
    - python: "2.7"
      env: TOXENV=lint
    - python: "2.7"
      env: TOXENV=py27-oldest BOULDER_INTEGRATION=1
      sudo: required
      after_failure:
        - sudo cat /var/log/mysql/error.log
        - ps aux | grep mysql
      services: docker
    - python: "2.6"
      env: TOXENV=py26 BOULDER_INTEGRATION=1
      sudo: required
      after_failure:
        - sudo cat /var/log/mysql/error.log
        - ps aux | grep mysql
      services: docker
    - python: "2.6"
      env: TOXENV=py26-oldest BOULDER_INTEGRATION=1
      sudo: required
      after_failure:
        - sudo cat /var/log/mysql/error.log
        - ps aux | grep mysql
      services: docker
    - python: "2.7"
      env: TOXENV=py27_install BOULDER_INTEGRATION=1
      sudo: required
      after_failure:
        - sudo cat /var/log/mysql/error.log
        - ps aux | grep mysql
      services: docker
    - sudo: required
      env: TOXENV=apache_compat
      services: docker
      before_install:
      addons:
    - sudo: required
      env: TOXENV=nginx_compat
      services: docker
      before_install:
      addons:
    - sudo: required
      env: TOXENV=le_auto_precise
      services: docker
      before_install:
      addons:
    - sudo: required
      env: TOXENV=le_auto_trusty
      services: docker
      before_install:
      addons:
    - sudo: required
      env: TOXENV=le_auto_wheezy
      services: docker
      before_install:
      addons:
    - sudo: required
      env: TOXENV=le_auto_centos6
      services: docker
      before_install:
      addons:
    - python: "2.7"
      env: TOXENV=apacheconftest
      sudo: required
    - 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: "2.7"
      env: TOXENV=nginxroundtrip


# Only build pushes to the master branch, PRs, and branches beginning with
# `test-` or of the form `digit(s).digit(s).x`. This reduces the number of
# simultaneous Travis runs, which speeds turnaround time on review since there
# is a cap of on the number of simultaneous runs.
branches:
  only:
    - master
    - /^\d+\.\d+\.x$/
    - /^test-.*$/

# container-based infrastructure
sudo: false

addons:
  # Custom /etc/hosts required for simple verification of http-01
  # and tls-sni-01, and for certbot_test_nginx
  hosts:
    - le.wtf
    - le1.wtf
    - le2.wtf
    - le3.wtf
    - nginx.wtf
    - boulder
    - boulder-mysql
    - boulder-rabbitmq
  apt:
    sources:
    - augeas
    packages:  # Keep in sync with letsencrypt-auto-source/pieces/bootstrappers/deb_common.sh and Boulder.
    - python-dev
    - python-virtualenv
    - gcc
    - libaugeas0
    - libssl-dev
    - libffi-dev
    - ca-certificates
    # For certbot-nginx integration testing
    - nginx-light
    - openssl
    # for apacheconftest
    - apache2
    - libapache2-mod-wsgi
    - libapache2-mod-macro

install: "travis_retry pip install tox coveralls"
script: 'travis_retry tox && ([ "xxx$BOULDER_INTEGRATION" = "xxx" ] || ./tests/travis-integration.sh)'

after_success: '[ "$TOXENV" == "cover" ] && coveralls'

notifications:
  email: false
  irc:
    channels:
      - "chat.freenode.net#letsencrypt"
    on_success: never
    on_failure: always
    use_notice: true
    skip_join: true