forked from celery/celery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
154 lines (146 loc) · 5.29 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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
language: python
dist: bionic
cache: pip
python:
- '2.7'
- '3.5'
- '3.6'
- '3.7'
- '3.8'
os:
- linux
stages:
- test
- integration
- lint
env:
global:
- PYTHONUNBUFFERED=yes
matrix:
- MATRIX_TOXENV=unit
matrix:
fast_finish: true
include:
- python: 3.8
env: MATRIX_TOXENV=integration-rabbitmq
stage: integration
- python: 3.8
env: MATRIX_TOXENV=integration-redis
stage: integration
- python: 3.8
env: MATRIX_TOXENV=integration-dynamodb
stage: integration
- python: 3.8
env: MATRIX_TOXENV=integration-azureblockblob
stage: integration
- python: 3.8
env: MATRIX_TOXENV=integration-cache
stage: integration
- python: 3.8
env: MATRIX_TOXENV=integration-cassandra
stage: integration
- python: '3.8'
env: TOXENV=flake8
stage: lint
- python: '3.8'
env: TOXENV=apicheck
stage: lint
- python: '3.8'
env: TOXENV=configcheck
stage: lint
- python: '3.8'
env: TOXENV=bandit
stage: lint
- python: '3.8'
env: TOXENV=pydocstyle
stage: lint
- python: '2.7'
env: TOXENV=flakeplus
stage: lint
- python: pypy2.7-7.3
env: TOXENV=pypy
before_install: sudo apt-get update && sudo apt-get install libgnutls-dev
stage: test
- python: pypy3.5-7.0
env: TOXENV=pypy3
before_install: sudo apt-get update && sudo apt-get install libgnutls-dev
stage: test
- python: pypy3.6-7.3
env: TOXENV=pypy3
before_install: sudo apt-get update && sudo apt-get install libgnutls-dev
stage: test
allow_failures:
- python: pypy3.5-7.0
env: TOXENV=pypy3
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 bionic 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
- |
if [[ "$TOXENV" == *cache ]]; then
docker run -d -p 11211:11211 memcached:alpine
while ! nc -zv 127.0.0.1 11211; do sleep 1; done
fi
- |
if [[ "$TOXENV" == *cassandra ]]; then
cassandra_container_id=$(sudo docker run -d -p 9042:9042 cassandra:latest)
sudo docker exec $cassandra_container_id /bin/bash -c "while ! cqlsh -e 'describe cluster'; do sleep 1; done"
sudo docker exec $cassandra_container_id /usr/bin/cqlsh -e "CREATE KEYSPACE tests WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };"
sleep 1
sudo docker exec $cassandra_container_id /usr/bin/cqlsh -k tests -e "CREATE TABLE tests (task_id text, status text, result blob, date_done timestamp, traceback blob, children blob, PRIMARY KEY ((task_id), date_done)) WITH CLUSTERING ORDER BY (date_done DESC);"
sleep 1
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 bionic bionic/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: pip --disable-pip-version-check install --upgrade-strategy eager -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