123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- 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
|