forked from celery/celery
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.travis.yml
103 lines (103 loc) · 3.34 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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.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
stage: lint
- python: '3.5'
env: TOXENV=flakeplus
stage: lint
- python: '3.5'
env: TOXENV=apicheck
stage: lint
- python: '3.5'
env: TOXENV=configcheck
stage: lint
- python: '3.5'
env: TOXENV=bandit
stage: lint
- python: '3.5'
env: TOXENV=pydocstyle
stage: lint
- python: '3.5'
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