forked from celery/celery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
111 lines (110 loc) · 3.83 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
104
105
106
107
108
109
110
111
language: python
sudo: required
dist: xenial
cache: pip
python:
- '2.7'
- '3.4'
- '3.5'
- '3.6'
- '3.7'
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_TOXENV=integration-azureblockblob
matrix:
include:
- python: '3.6'
env: TOXENV=pypy-unit PYPY_VERSION="pypy2.7-6.0.0"
- python: '3.6'
env: TOXENV=pypy-integration-rabbitmq PYPY_VERSION="pypy2.7-6.0.0"
- python: '3.6'
env: TOXENV=pypy-integration-redis PYPY_VERSION="pypy2.7-6.0.0"
- python: '3.6'
env: TOXENV=pypy-integration-dynamodb PYPY_VERSION="pypy2.7-6.0.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
before_install:
- sudo apt install libcurl4-openssl-dev libssl-dev gnutls-dev
- if [[ -v MATRIX_TOXENV ]]; then export TOXENV=${TRAVIS_PYTHON_VERSION}-${MATRIX_TOXENV}; fi; env
- |
if [[ "$TOXENV" == *integration* ]]; then
sudo echo 'deb https://dl.bintray.com/rabbitmq-erlang/debian xenial main' > /etc/apt/sources.list.d/rabbitmq-bintray.list
sudo apt-key adv --keyserver "hkps.pool.sks-keyservers.net" --recv-keys "0x6B73A36E6026DFCA"
wget -O - "https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc" | sudo apt-key add -
sudo apt update
sudo apt install rabbitmq-server -y
sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
fi
- |
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
docker run -d -p 8000:8000 dwmkerr/dynamodb:38 -inMemory
while ! nc -zv 127.0.0.1 8000; do sleep 10; done
fi
- |
docker run -d -e executable=blob -t -p 10000:10000 --tmpfs /opt/azurite/folder:rw arafato/azurite:2.6.5
while ! nc -zv 127.0.0.1 10000; do sleep 10; done
export AZUREBLOCKBLOB_URL="azureblockblob://DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"
- |
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:
email: false
irc:
channels:
- "chat.freenode.net#celery"
on_success: change
on_failure: change
services:
- rabbitmq
- redis
- docker