mirror of
https://github.com/outbackdingo/patroni.git
synced 2026-08-25 14:53:37 +00:00
* Reassemble postgresql parameters when major version became known Otherwise we were writing some "unknown" parameters into postgresql.conf and postgres was refusing to start. Only 9.3 was affected. In addition to that move rename of wal_level from hot_standby to replica into get_server_parameters method. Now this rename is handled in a single place. * Bump etcd and consul versions
115 lines
4.0 KiB
YAML
115 lines
4.0 KiB
YAML
sudo: false
|
|
dist: trusty
|
|
language: python
|
|
python:
|
|
- "3.4" # 2.7 and 3.5 are preinstalled by default
|
|
env:
|
|
global:
|
|
- ETCDVERSION=3.0.17 ZKVERSION=3.4.9 CONSULVERSION=0.7.4
|
|
- PYVERSIONS="2.7 3.4 3.5"
|
|
matrix:
|
|
- TEST_SUITE="python setup.py"
|
|
- DCS="etcd" TEST_SUITE="behave"
|
|
- DCS="exhibitor" TEST_SUITE="behave"
|
|
- DCS="consul" TEST_SUITE="behave"
|
|
cache:
|
|
directories:
|
|
- $HOME/mycache
|
|
before_cache:
|
|
- |
|
|
rm -fr $HOME/mycache/python*
|
|
for pv in $PYVERSIONS; do
|
|
if [[ $TEST_SUITE != "behave" || $pv != "3.4" ]]; then
|
|
fpv=$(basename $(readlink $HOME/virtualenv/python${pv}))
|
|
mv $HOME/virtualenv/${fpv} $HOME/mycache/${fpv}
|
|
fi
|
|
done
|
|
install:
|
|
- |
|
|
set -e
|
|
|
|
if [[ $TEST_SUITE == "behave" ]]; then
|
|
function get_consul() {
|
|
CC=~/mycache/consul_${CONSULVERSION}
|
|
if [[ ! -x $CC ]]; then
|
|
curl -L https://releases.hashicorp.com/consul/${CONSULVERSION}/consul_${CONSULVERSION}_linux_amd64.zip \
|
|
| gunzip > $CC
|
|
[[ ${PIPESTATUS[0]} == 0 ]] || return 1
|
|
chmod +x $CC
|
|
fi
|
|
ln -s $CC consul
|
|
}
|
|
|
|
function get_etcd() {
|
|
EC=~/mycache/etcd_${ETCDVERSION}
|
|
if [[ ! -x $EC ]]; then
|
|
curl -L https://github.com/coreos/etcd/releases/download/v${ETCDVERSION}/etcd-v${ETCDVERSION}-linux-amd64.tar.gz \
|
|
| tar xz -C . --strip=1 --wildcards --no-anchored etcd
|
|
[[ ${PIPESTATUS[0]} == 0 ]] || return 1
|
|
mv etcd $EC
|
|
fi
|
|
ln -s $EC etcd
|
|
}
|
|
|
|
function get_exhibitor() {
|
|
ZC=~/mycache/zookeeper-${ZKVERSION}
|
|
if [[ ! -d $ZC ]]; then
|
|
curl -L http://www.apache.org/dist/zookeeper/zookeeper-${ZKVERSION}/zookeeper-${ZKVERSION}.tar.gz | tar xz
|
|
[[ ${PIPESTATUS[0]} == 0 ]] || return 1
|
|
mv zookeeper-${ZKVERSION}/conf/zoo_sample.cfg zookeeper-${ZKVERSION}/conf/zoo.cfg
|
|
mv zookeeper-${ZKVERSION} $ZC
|
|
fi
|
|
$ZC/bin/zkServer.sh start
|
|
# following lines are 'emulating' exhibitor REST API
|
|
while true; do
|
|
echo -e 'HTTP/1.0 200 OK\nContent-Type: application/json\n\n{"servers":["127.0.0.1"],"port":2181}' \
|
|
| nc -l 8181 &> /dev/null
|
|
done&
|
|
}
|
|
|
|
attempt_num=1
|
|
until get_${DCS}; do
|
|
[[ $attempt_num -ge 3 ]] && exit 1
|
|
echo "Attempt $attempt_num failed! Trying again in $attempt_num seconds..."
|
|
sleep $(( attempt_num++ ))
|
|
done
|
|
fi
|
|
|
|
for pv in $PYVERSIONS; do
|
|
if [[ $TEST_SUITE != "behave" || $pv != "3.4" ]]; then
|
|
fpv=$(basename $(readlink $HOME/virtualenv/python$pv))
|
|
if [[ -d ~/mycache/${fpv} ]]; then
|
|
mv ~/virtualenv/${fpv} ~/virtualenv/${fpv}.bckp
|
|
mv ~/mycache/${fpv} ~/virtualenv/${fpv}
|
|
fi
|
|
source ~/virtualenv/python${pv}/bin/activate
|
|
# explicitly install all needed python modules to cache them
|
|
for p in '-r requirements.txt' 'behave codacy-coverage coverage coveralls flake8 mock pytest-cov pytest setuptools'; do
|
|
pip install $p --upgrade
|
|
done
|
|
fi
|
|
done
|
|
script:
|
|
- |
|
|
for pv in $PYVERSIONS; do
|
|
source ~/virtualenv/python${pv}/bin/activate
|
|
|
|
if [[ $TEST_SUITE != "behave" ]]; then
|
|
echo Running unit tests using python${pv}
|
|
$TEST_SUITE test
|
|
$TEST_SUITE flake8
|
|
elif [[ $pv != "3.4" ]]; then
|
|
echo Running acceptance tests using python${pv}
|
|
if ! PATH=.:/usr/lib/postgresql/9.6/bin:$PATH $TEST_SUITE; then
|
|
# output all log files when tests are failing
|
|
grep . features/output/*/*postgres?.*
|
|
exit 1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
set +e
|
|
after_success:
|
|
- coveralls
|
|
- if [[ $TEST_SUITE != "behave" ]]; then python-codacy-coverage -r coverage.xml; fi
|