language: python
sudo: required
dist: trusty
cache: pip
python:
  - '2.7'
  - '3.4'
  - '3.5'
  - '3.6'
os:
    - linux
env:
  global:
  - PYTHONUNBUFFERED=yes
  matrix:
  - MATRIX_TOXENV=unit
  - MATRIX_TOXENV=integration-rabbitmq
  - MATRIX_TOXENV=integration-redis
  - MATRIX_TOXENV=integration-dynamodb
matrix:
  include:
  - python: '3.5'
    env: TOXENV=pypy-unit PYPY_VERSION="pypy2.7-5.8.0"
  - python: '3.5'
    env: TOXENV=pypy-integration-rabbitmq PYPY_VERSION="pypy2.7-5.8.0"
  - python: '3.5'
    env: TOXENV=pypy-integration-redis PYPY_VERSION="pypy2.7-5.8.0"
  - python: '3.5'
    env: TOXENV=pypy-integration-dynamodb PYPY_VERSION="pypy2.7-5.8.0"
  - python: '3.5'
    env: TOXENV=flake8
  - python: '3.5'
    env: TOXENV=flakeplus
  - python: '3.5'
    env: TOXENV=apicheck
  - python: '3.5'
    env: TOXENV=configcheck
  - python: '3.5'
    env: TOXENV=pydocstyle
before_install:
    - if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env
    - |
          if [[ "$TOXENV" =~ "pypy" ]]; then
            export PYENV_ROOT="$HOME/.pyenv"
            if [ -f "$PYENV_ROOT/bin/pyenv" ]; then
              cd "$PYENV_ROOT" && git pull
            else
              rm -rf "$PYENV_ROOT" && git clone --depth 1 https://github.com/pyenv/pyenv.git "$PYENV_ROOT"
            fi
            "$PYENV_ROOT/bin/pyenv" install "$PYPY_VERSION"
            virtualenv --python="$PYENV_ROOT/versions/$PYPY_VERSION/bin/python" "$HOME/virtualenvs/$PYPY_VERSION"
            source "$HOME/virtualenvs/$PYPY_VERSION/bin/activate"
            which python
          fi
    - |
          if [[ "$TOXENV" == *dynamodb ]]; then
              sudo apt-get update && sudo apt-get install -y default-jre supervisor
              mkdir /opt/dynamodb-local
              cd /opt/dynamodb-local && curl --retry 5 --retry-delay 1 -L http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz | tar zx
              cd -
              echo '[program:dynamodb-local]' | sudo tee /etc/supervisor/conf.d/dynamodb-local.conf
              echo 'command=java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -inMemory' | sudo tee -a /etc/supervisor/conf.d/dynamodb-local.conf
              echo 'directory=/opt/dynamodb-local' | sudo tee -a /etc/supervisor/conf.d/dynamodb-local.conf
              sudo service supervisor stop
              sudo service supervisor start
              sleep 10
              curl localhost:8000
          fi
after_success:
  - .tox/$TRAVIS_PYTHON_VERSION/bin/coverage xml
  - .tox/$TRAVIS_PYTHON_VERSION/bin/codecov -e TOXENV
install: travis_retry pip install -U tox | cat
script: tox -v -- -v
notifications:
  irc:
    channels:
      - "chat.freenode.net#celery"
    on_success: change
    on_failure: change
services:
    - rabbitmq
    - redis