Skip to content

Commit d27da2e

Browse files
committed
test pg_pathman with Travis-CI
1 parent 696b032 commit d27da2e

File tree

3 files changed

+178
-0
lines changed

3 files changed

+178
-0
lines changed

.travis.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
language: c
2+
3+
before_install:
4+
- sudo sh ./travis/apt.postgresql.org.sh
5+
6+
env:
7+
- PGVERSION=9.5
8+
9+
script: bash ./travis/pg-travis-test.sh

travis/apt.postgresql.org.sh

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
#!/bin/sh
2+
3+
# script to add apt.postgresql.org to sources.list
4+
5+
# from command like
6+
CODENAME="$1"
7+
# lsb_release is the best interface, but not always available
8+
if [ -z "$CODENAME" ]; then
9+
CODENAME=$(lsb_release -cs 2>/dev/null)
10+
fi
11+
# parse os-release (unreliable, does not work on Ubuntu)
12+
if [ -z "$CODENAME" -a -f /etc/os-release ]; then
13+
. /etc/os-release
14+
# Debian: VERSION="7.0 (wheezy)"
15+
# Ubuntu: VERSION="13.04, Raring Ringtail"
16+
CODENAME=$(echo $VERSION | sed -ne 's/.*(\(.*\)).*/\1/')
17+
fi
18+
# guess from sources.list
19+
if [ -z "$CODENAME" ]; then
20+
CODENAME=$(grep '^deb ' /etc/apt/sources.list | head -n1 | awk '{ print $3 }')
21+
fi
22+
# complain if no result yet
23+
if [ -z "$CODENAME" ]; then
24+
cat <<EOF
25+
Could not determine the distribution codename. Please report this as a bug to
26+
pgsql-pkg-debian@postgresql.org. As a workaround, you can call this script with
27+
the proper codename as parameter, e.g. "$0 squeeze".
28+
EOF
29+
exit 1
30+
fi
31+
32+
# errors are non-fatal above
33+
set -e
34+
35+
cat <<EOF
36+
This script will enable the PostgreSQL APT repository on apt.postgresql.org on
37+
your system. The distribution codename used will be $CODENAME-pgdg.
38+
39+
EOF
40+
41+
case $CODENAME in
42+
# known distributions
43+
sid|wheezy|squeeze|lenny|etch) ;;
44+
precise|lucid) ;;
45+
*) # unknown distribution, verify on the web
46+
DISTURL="http://apt.postgresql.org/pub/repos/apt/dists/"
47+
if [ -x /usr/bin/curl ]; then
48+
DISTHTML=$(curl -s $DISTURL)
49+
elif [ -x /usr/bin/wget ]; then
50+
DISTHTML=$(wget --quiet -O - $DISTURL)
51+
fi
52+
if [ "$DISTHTML" ]; then
53+
if ! echo "$DISTHTML" | grep -q "$CODENAME-pgdg"; then
54+
cat <<EOF
55+
Your system is using the distribution codename $CODENAME, but $CODENAME-pgdg
56+
does not seem to be a valid distribution on
57+
$DISTURL
58+
59+
We abort the installation here. Please ask on the mailing list for assistance.
60+
61+
pgsql-pkg-debian@postgresql.org
62+
EOF
63+
exit 1
64+
fi
65+
fi
66+
;;
67+
esac
68+
69+
#echo -n "Press Enter to continue, or Ctrl-C to abort."
70+
#
71+
#read enter
72+
73+
echo "Writing /etc/apt/sources.list.d/pgdg.list ..."
74+
cat > /etc/apt/sources.list.d/pgdg.list <<EOF
75+
deb http://apt.postgresql.org/pub/repos/apt/ $CODENAME-pgdg main
76+
#deb-src http://apt.postgresql.org/pub/repos/apt/ $CODENAME-pgdg main
77+
EOF
78+
79+
echo "Importing repository signing key ..."
80+
KEYRING="/etc/apt/trusted.gpg.d/apt.postgresql.org.gpg"
81+
test -e $KEYRING || touch $KEYRING
82+
apt-key --keyring $KEYRING add - <<EOF
83+
-----BEGIN PGP PUBLIC KEY BLOCK-----
84+
Version: GnuPG v1.4.12 (GNU/Linux)
85+
86+
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
122+
VPZ67j5UMxqtT/Y4+NHcQGgwF/1i
123+
=Iugu
124+
-----END PGP PUBLIC KEY BLOCK-----
125+
EOF
126+
127+
echo "Running apt-get update ..."
128+
apt-get update
129+
130+
cat <<EOF
131+
132+
You can now start installing packages from apt.postgresql.org.
133+
134+
Have a look at https://wiki.postgresql.org/wiki/Apt for more information;
135+
most notably the FAQ at https://wiki.postgresql.org/wiki/Apt/FAQ
136+
EOF

travis/pg-travis-test.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
set -eux
4+
5+
sudo apt-get update
6+
7+
packages="postgresql-$PGVERSION postgresql-server-dev-$PGVERSION postgresql-common"
8+
9+
# bug: http://www.postgresql.org/message-id/20130508192711.GA9243@msgid.df7cb.de
10+
sudo update-alternatives --remove-all postmaster.1.gz
11+
12+
# stop all existing instances (because of https://github.com/travis-ci/travis-cookbooks/pull/221)
13+
sudo service postgresql stop
14+
# and make sure they don't come back
15+
echo 'exit 0' | sudo tee /etc/init.d/postgresql
16+
sudo chmod a+x /etc/init.d/postgresql
17+
18+
sudo apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install $packages
19+
20+
status=0
21+
sudo pg_createcluster --start $PGVERSION test -p 55435 -- -A trust
22+
23+
make USE_PGXS=1 PG_CONFIG=/usr/lib/postgresql/$PGVERSION/bin/pg_config
24+
sudo make install USE_PGXS=1 PG_CONFIG=/usr/lib/postgresql/$PGVERSION/bin/pg_config
25+
26+
# add pg_pathman to shared_preload_libraries
27+
sudo bash -c "echo \"shared_preload_libraries = 'pg_pathman'\" >> /etc/postgresql/$PGVERSION/test/postgresql.conf"
28+
sudo pg_ctlcluster $PGVERSION test restart
29+
30+
PGPORT=55435 make installcheck USE_PGXS=1 PGUSER=postgres PG_CONFIG=/usr/lib/postgresql/$PGVERSION/bin/pg_config || status=$?
31+
32+
if test -f regression.diffs; then cat regression.diffs; fi
33+
exit $status

0 commit comments

Comments
 (0)