forked from Parsely/pykafka
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
117 lines (110 loc) · 3.59 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
language: python
sudo: required
cache:
directories:
- $HOME/.cache/pip
- $HOME/.ccache
matrix:
include:
- env: TOX_ENV=py27 KAFKA_VERSION=2.0.0
python: 2.7
- env: TOX_ENV=py27 KAFKA_VERSION=1.0.1
python: 2.7
- env: TOX_ENV=py34 KAFKA_VERSION=2.0.0
python: 3.4
- env: TOX_ENV=py34 KAFKA_VERSION=1.0.1
python: 3.4
- env: TOX_ENV=py35 KAFKA_VERSION=2.0.0
python: 3.5
- env: TOX_ENV=py35 KAFKA_VERSION=1.0.1
python: 3.5
- env: TOX_ENV=py36 KAFKA_VERSION=2.0.0
python: 3.6
- env: TOX_ENV=py36 KAFKA_VERSION=1.0.1
python: 3.6
- env: TOX_ENV=pypy KAFKA_VERSION=2.0.0
python: pypy
- env: TOX_ENV=pypy KAFKA_VERSION=1.0.1
python: pypy
- env: TOX_ENV=py27-gevent KAFKA_VERSION=2.0.0
python: 2.7
- env: TOX_ENV=py27-gevent KAFKA_VERSION=1.0.1
python: 2.7
- env: TOX_ENV=py36-gevent KAFKA_VERSION=2.0.0
python: 3.6
- env: TOX_ENV=py36-gevent KAFKA_VERSION=1.0.1
python: 3.6
env:
global:
- PATH="/usr/lib/ccache:$PATH"
- KAFKA_BIN="$HOME/kafka-bin"
- PYTHONUNBUFFERED=1
addons:
apt:
packages:
- libev-dev
- libsnappy-dev
- zlib1g-dev # for librdkafka
notifications:
email:
- keith@parsely.com
- emmett@parsely.com
- yungchin@yungchin.nl
install:
- |
if [ "$TRAVIS_PYTHON_VERSION" = "pypy" ]; then
export PYENV_ROOT="$HOME/.pyenv"
if [ -f "$PYENV_ROOT/bin/pyenv" ]; then
pushd "$PYENV_ROOT" && git pull && popd
else
rm -rf "$PYENV_ROOT" && git clone --depth 1 https://github.com/yyuu/pyenv.git "$PYENV_ROOT"
fi
export PYPY_VERSION="5.6.0"
"$PYENV_ROOT/bin/pyenv" install --skip-existing "pypy-$PYPY_VERSION"
virtualenv --python="$PYENV_ROOT/versions/pypy-$PYPY_VERSION/bin/python" "$HOME/virtualenvs/pypy-$PYPY_VERSION"
source "$HOME/virtualenvs/pypy-$PYPY_VERSION/bin/activate"
fi
- pip install -U pip setuptools
- pip install codecov kazoo tox testinstances
- wget https://github.com/edenhill/librdkafka/archive/v0.11.3.tar.gz
- tar -xzf v0.11.3.tar.gz
- cd librdkafka-0.11.3/ && ./configure --prefix=$HOME
- make -j 2 && make -j 2 install && cd -
before_script:
- export C_INCLUDE_PATH=$HOME/include:$C_INCLUDE_PATH
- export LIBRARY_PATH=$HOME/lib:$LIBRARY_PATH
- export LD_LIBRARY_PATH=$HOME/lib:$LD_LIBRARY_PATH
- export CFLAGS="-coverage"
- TEMPFILE=`tempfile`
- KAFKA_LOGS=`tempfile`
- python -m pykafka.test.kafka_instance 3 --kafka-version $KAFKA_VERSION --download-dir $KAFKA_BIN --export-hosts $TEMPFILE --log-level INFO 2>$KAFKA_LOGS &
- |
kafka_pid=$!
start=$(date +%s)
until grep ZOOKEEPER $TEMPFILE 1>/dev/null 2>/dev/null; do
sleep 1
echo "Waiting for cluster..."
if [[ $(($(date +%s) - start)) -gt 300 ]]; then
echo "Timeout waiting for cluster!"
cat $KAFKA_LOGS
exit 1
fi;
if ! kill -0 "$kafka_pid" >/dev/null 2>&1 ; then
echo "Kafka test cluster died during startup!"
cat $KAFKA_LOGS
exit 2
fi
done
- export `grep BROKERS $TEMPFILE`
- export `grep BROKERS_SSL $TEMPFILE`
- export `grep BROKERS_SASL $TEMPFILE`
- export `grep ZOOKEEPER $TEMPFILE`
script:
- tox -e $TOX_ENV tests
# Calculate coverage on success
after_success:
# in the next release of codecov, these --gcov-args are probably automatic
- codecov --gcov-args="-b -c -o $(find . -type f -name '*.gcno' -exec dirname {} \;)"
branches:
only:
- master