language: python sudo: required dist: trusty cache: pip python: - '2.7' - '3.4' - '3.5' - '3.6' os: - linux stages: - lint - test env: global: - PYTHONUNBUFFERED=yes matrix: - MATRIX_TOXENV=unit - MATRIX_TOXENV=integration-rabbitmq - MATRIX_TOXENV=integration-redis - MATRIX_TOXENV=integration-dynamodb matrix: include: - python: '3.6' env: TOXENV=pypy-unit PYPY_VERSION="pypy2.7-5.8.0" - python: '3.6' env: TOXENV=pypy-integration-rabbitmq PYPY_VERSION="pypy2.7-5.8.0" - python: '3.6' env: TOXENV=pypy-integration-redis PYPY_VERSION="pypy2.7-5.8.0" - python: '3.6' env: TOXENV=pypy-integration-dynamodb PYPY_VERSION="pypy2.7-5.8.0" - 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 - | 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 - | wget -qO - https://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add - sudo apt-add-repository -y 'deb http://packages.couchbase.com/ubuntu trusty trusty/main' sudo apt-get update && sudo apt-get install -y libcouchbase-dev 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 services: - rabbitmq - redis