mirror of
https://github.com/adjust/pg-base36.git
synced 2025-12-16 15:54:39 +00:00
Rewrite travis script in order to use docker
This commit is contained in:
64
.travis.yml
64
.travis.yml
@@ -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
29
Dockerfile
Normal 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
27
run_tests.sh
Executable 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
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user