language: python sudo: required dist: trusty cache: pip python: - '2.7' - '3.4' - '3.5' - '3.6' os: - linux stages: - lint - test - integration-test env: global: - PYTHONUNBUFFERED=yes matrix: - MATRIX_TOXENV=unit matrix: include: - python: '2.7' env: MATRIX_TOXENV=integration-rabbitmq stage: integration-test services: - rabbitmq - python: '2.7' env: MATRIX_TOXENV=integration-redis stage: integration-test services: - redis - python: '2.7' env: MATRIX_TOXENV=integration-dynamodb stage: integration-test before_install: - if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env - ./extra/install_dynamodb.sh - ./extra/install_couchbase_client.sh - python: '3.4' env: MATRIX_TOXENV=integration-rabbitmq stage: integration-test services: - rabbitmq - python: '3.4' env: MATRIX_TOXENV=integration-redis stage: integration-test services: - redis - python: '3.4' env: MATRIX_TOXENV=integration-dynamodb stage: integration-test before_install: - if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env - ./extra/install_dynamodb.sh - ./extra/install_couchbase_client.sh - python: '3.5' env: MATRIX_TOXENV=integration-rabbitmq stage: integration-test services: - rabbitmq - python: '3.5' env: MATRIX_TOXENV=integration-redis stage: integration-test services: - redis - python: '3.5' env: MATRIX_TOXENV=integration-dynamodb stage: integration-test before_install: - if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env - ./extra/install_dynamodb.sh - ./extra/install_couchbase_client.sh - python: '3.6' env: MATRIX_TOXENV=integration-rabbitmq stage: integration-test services: - rabbitmq - python: '3.6' env: MATRIX_TOXENV=integration-redis stage: integration-test services: - redis - python: '3.6' env: MATRIX_TOXENV=integration-dynamodb stage: integration-test before_install: - if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env - ./extra/install_dynamodb.sh - ./extra/install_couchbase_client.sh - python: '3.6' env: TOXENV=pypy-integration-rabbitmq PYPY_VERSION="pypy2.7-5.8.0" stage: integration-test services: - rabbitmq - python: '3.6' env: TOXENV=pypy-integration-redis PYPY_VERSION="pypy2.7-5.8.0" stage: integration-test services: - redis - python: '3.6' env: TOXENV=pypy-integration-dynamodb PYPY_VERSION="pypy2.7-5.8.0" stage: integration-test before_install: - if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env - ./extra/install_dynamodb.sh - | 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 - ./extra/install_couchbase_client.sh - python: '3.6' env: TOXENV=pypy-unit PYPY_VERSION="pypy2.7-5.8.0" stage: test - python: '3.6' env: TOXENV=flake8 stage: lint - python: '3.6' env: TOXENV=flakeplus stage: lint - python: '3.6' env: TOXENV=apicheck stage: lint - python: '3.6' env: TOXENV=configcheck stage: lint - python: '3.6' env: TOXENV=bandit stage: lint - python: '3.6' env: TOXENV=pydocstyle stage: lint - python: '3.6' env: TOXENV=isort-check stage: lint 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 - ./extra/install_couchbase_client.sh after_success: - | if [[ -v MATRIX_TOXENV || "$TOXENV" =~ "pypy" ]]; then .tox/$TOXENV/bin/coverage xml .tox/$TOXENV/bin/codecov -e TOXENV fi; 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