Rewrite travis script in order to use docker

This commit is contained in:
Ildar Musin
2019-07-05 11:18:40 +02:00
parent 06702fa2ec
commit 7a1a6ca734
4 changed files with 81 additions and 55 deletions

View File

@@ -1,51 +1,19 @@
sudo: required
dist: trusty
language: c
matrix:
include:
- addons:
postgresql: 9.3
env:
- POSTGRESQL=9.3
install:
- sudo apt-get install postgresql-server-dev-9.3
- sudo make install
- addons:
postgresql: 9.4
env:
- POSTGRESQL=9.4
install:
- sudo apt-get install postgresql-server-dev-9.4
- sudo make install
- addons:
postgresql: 9.5
install:
- sudo apt-get install postgresql-server-dev-9.5
- sudo make install
env:
- POSTGRESQL=9.5
- addons:
postgresql: 9.6
install:
- sudo apt-get install postgresql-server-dev-9.6
- sudo make install
env:
- POSTGRESQL=9.6
- # addons: postgresql: 10
install:
- sudo service postgresql stop
- wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
- sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
- sudo apt-get update
- sudo apt-get install postgresql postgresql-contrib postgresql-client
- sudo apt-get install postgresql-server-dev-10
- sudo sh -c 'echo "port=5432" >> /etc/postgresql/10/main/postgresql.conf'
- sudo pg_ctlcluster 10 main restart
- sudo -u postgres psql -c "create user travis with superuser";
- sudo make install
env:
- POSTGRESQL=10
services: docker
install:
- docker build . -t tests --build-arg PG_VERSION=${PG_VERSION}
script:
- make installcheck
after_failure:
- cat regression.diffs
- docker run tests
env:
- PG_VERSION=12
- PG_VERSION=11
- PG_VERSION=10
- PG_VERSION=9.6
- PG_VERSION=9.5
- PG_VERSION=9.4

29
Dockerfile Normal file
View File

@@ -0,0 +1,29 @@
ARG PG_VERSION
FROM postgres:${PG_VERSION}-alpine
# Environment
ENV LANG=C.UTF-8 PGDATA=/pg/data
# Install dependencies
RUN apk add --no-cache \
make musl-dev gcc
# Make directories
RUN mkdir -p ${PGDATA} && \
mkdir -p /pg/testdir
# Add data to test dir
ADD . /pg/testdir
# Grant privileges
RUN chown -R postgres:postgres ${PGDATA} && \
chown -R postgres:postgres /pg/testdir && \
chmod a+rwx /usr/local/lib/postgresql && \
chmod a+rwx /usr/local/share/postgresql/extension
COPY run_tests.sh /run_tests.sh
RUN chmod 755 /run_tests.sh
USER postgres
WORKDIR /pg/testdir
ENTRYPOINT /run_tests.sh

27
run_tests.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -ux
# global exports
export PGPORT=55435
# build extension
make install
# initialize database
initdb -D $PGDATA
# start cluster
pg_ctl start -l /tmp/postgres.log -w -o "-p $PGPORT"
# something's wrong, exit now!
[[ $? -ne 0 ]] && cat /tmp/postgres.log && exit 1;
# run regression tests
export PG_REGRESS_DIFF_OPTS="-w -U3" # for alpine's diff (BusyBox)
make installcheck
# show diff if needed and exit if something's wrong
[[ $? -ne 0 ]] && { [[ -f regression.diffs ]] && cat regression.diffs ; exit 1 ; }
set +ux

View File

@@ -18,8 +18,9 @@ SELECT COUNT(*) FROM parallel_test WHERE b1 = '1ftese';
-> Partial Aggregate
Output: PARTIAL count(*)
-> Parallel Seq Scan on public.parallel_test
Output: i, b1, b2
Filter: (parallel_test.b1 = '1ftese'::base36)
(9 rows)
(10 rows)
EXPLAIN (costs off,verbose)
SELECT COUNT(*) FROM parallel_test WHERE b2 = '1ftese';
@@ -33,8 +34,9 @@ SELECT COUNT(*) FROM parallel_test WHERE b2 = '1ftese';
-> Partial Aggregate
Output: PARTIAL count(*)
-> Parallel Seq Scan on public.parallel_test
Output: i, b1, b2
Filter: (parallel_test.b2 = '1ftese'::bigbase36)
(9 rows)
(10 rows)
EXPLAIN (costs off,verbose)
SELECT b1, COUNT(*) FROM parallel_test GROUP BY 1;
@@ -43,17 +45,17 @@ SELECT b1, COUNT(*) FROM parallel_test GROUP BY 1;
Finalize GroupAggregate
Output: b1, count(*)
Group Key: parallel_test.b1
-> Sort
-> Gather Merge
Output: b1, (PARTIAL count(*))
Sort Key: parallel_test.b1
-> Gather
Workers Planned: 4
-> Sort
Output: b1, (PARTIAL count(*))
Workers Planned: 4
Sort Key: parallel_test.b1
-> Partial HashAggregate
Output: b1, PARTIAL count(*)
Group Key: parallel_test.b1
-> Parallel Seq Scan on public.parallel_test
Output: b1
Output: i, b1, b2
(14 rows)
ROLLBACK;