From 87b61e2abd5b999bcf5168b8faf453938f3a5996 Mon Sep 17 00:00:00 2001 From: Dmitry Vasilyev Date: Fri, 16 Sep 2016 00:26:02 +0300 Subject: [PATCH] Travis tests --- .travis.yml | 7 +++++ travis/backup_restore.sh | 66 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 .travis.yml create mode 100644 travis/backup_restore.sh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..35b49ec5b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,7 @@ +sudo: required + +services: +- docker + +script: +- docker run -v $(pwd):/tests --rm centos:7 /tests/travis/backup_restore.sh diff --git a/travis/backup_restore.sh b/travis/backup_restore.sh new file mode 100644 index 000000000..d7d421c6b --- /dev/null +++ b/travis/backup_restore.sh @@ -0,0 +1,66 @@ +#!/bin/sh -ex + +# vars +export PGVERSION=9.5.4 +export PATH=$PATH:/usr/pgsql-9.5/bin +export PGUSER=pgbench +export PGDATABASE=pgbench +export PGDATA=/var/lib/pgsql/9.5/data +export BACKUP_PATH=/backups +export ARCLOG_PATH=$BACKUP_PATH/backup/pg_xlog +export PGDATA2=/var/lib/pgsql/9.5/data2 +export PGBENCH_SCALE=100 +export PGBENCH_TIME=60 + +# prepare directory +cp -a /tests /build +pushd /build + +# download postgresql +yum install -y wget +wget -k https://ftp.postgresql.org/pub/source/v$PGVERSION/postgresql-$PGVERSION.tar.gz -O postgresql.tar.gz +tar xf postgresql.tar.gz + +# install pg_arman +yum install -y https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm +yum install -y postgresql95-devel make gcc readline-devel openssl-devel pam-devel libxml2-devel libxslt-devel +make top_srcdir=postgresql-$PGVERSION +make install top_srcdir=postgresql-$PGVERSION + +# initalize cluster and database +yum install -y postgresql95-server +su postgres -c "/usr/pgsql-9.5/bin/initdb -D $PGDATA -k" +cat < $PGDATA/pg_hba.conf +local all all trust +host all all 127.0.0.1/32 trust +local replication pgbench trust +host replication pgbench 127.0.0.1/32 trust +EOF +cat < $PGDATA/postgresql.auto.conf +max_wal_senders = 2 +wal_level = logical +wal_log_hints = on +EOF +su postgres -c "/usr/pgsql-9.5/bin/pg_ctl start -w -D $PGDATA" +su postgres -c "createdb -U postgres $PGUSER" +su postgres -c "createuser -U postgres -a -d -E $PGUSER" +pgbench -i -s $PGBENCH_SCALE + +# Count current +COUNT=$(psql -Atc "select count(*) from pgbench_accounts") +pgbench -s $PGBENCH_SCALE -T $PGBENCH_TIME -j 2 -c 10 & + +# create backup +pg_arman init +pg_arman backup -b full --disable-ptrack-clear --stream -v +pg_arman show +sleep $PGBENCH_TIME + +# restore from backup +chown -R postgres:postgres $BACKUP_PATH +su postgres -c "pg_arman restore -D $PGDATA2" + +# start backup server +su postgres -c "/usr/pgsql-9.5/bin/pg_ctl stop -w -D $PGDATA" +su postgres -c "/usr/pgsql-9.5/bin/pg_ctl start -w -D $PGDATA2" +( psql -Atc "select count(*) from pgbench_accounts" | grep $COUNT ) || (cat $PGDATA2/pg_log/*.log ; exit 1)