From b57b1acac09c927d75a92352831900946cea2ee4 Mon Sep 17 00:00:00 2001 From: Ekaterina Sokolova Date: Fri, 5 Jul 2024 12:48:42 +0300 Subject: [PATCH 1/2] Attempt to revive Travis. --- .gitignore | 1 + .travis.yml | 56 +++++----- README.md | 2 +- travis/dep-ubuntu-llvm.sh | 4 - travis/dep-ubuntu-postgres.sh | 4 +- travis/llvm-snapshot.gpg.key | 52 --------- travis/pg-travis-test.sh | 200 +++------------------------------- travis/postgresql.gpg.key | 77 ------------- 8 files changed, 45 insertions(+), 351 deletions(-) delete mode 100755 travis/dep-ubuntu-llvm.sh delete mode 100644 travis/llvm-snapshot.gpg.key delete mode 100644 travis/postgresql.gpg.key diff --git a/.gitignore b/.gitignore index acd374a..4b52f03 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /log/ /results/ /tmp_check/ +*.bc *.so *.o jsquery_gram.c diff --git a/.travis.yml b/.travis.yml index fec84a6..13fefac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,35 +1,33 @@ -os: - - linux - -sudo: required -dist: trusty +dist: jammy language: c -compiler: - - clang - - gcc +env: +- PG_VER=16 +- PG_VER=15 +- PG_VER=14 +- PG_VER=13 +- PG_VER=12 +- PG_VER=11 +- PG_VER=10 +- PG_VER=9.6 +- PG_VER=9.5 +- PG_VER=9.4 -before_install: - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -y install -qq wget ca-certificates; fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then source ./travis/dep-ubuntu-postgres.sh; fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then source ./travis/dep-ubuntu-llvm.sh; fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -qq; fi +jobs: + allow_failures: + - env: PG_VER=12 + - env: PG_VER=11 + - env: PG_VER=10 + - env: PG_VER=9.6 + - env: PG_VER=9.5 + - env: PG_VER=9.4 -env: - global: - - LLVM_VER=4.0 - matrix: - - PG_VER=11 CHECK_TYPE=normal - - PG_VER=11 CHECK_TYPE=static - - PG_VER=10 CHECK_TYPE=normal - - PG_VER=10 CHECK_TYPE=static - - PG_VER=10.5 CHECK_TYPE=valgrind - - PG_VER=9.6 CHECK_TYPE=normal - - PG_VER=9.6 CHECK_TYPE=static - - PG_VER=9.5 CHECK_TYPE=normal - - PG_VER=9.5 CHECK_TYPE=static - - PG_VER=9.4 CHECK_TYPE=normal - - PG_VER=9.4 CHECK_TYPE=static +before_script: + - sudo apt-get -y install -qq wget ca-certificates + - travis/dep-ubuntu-postgres.sh + - sudo apt-get update + - sudo apt-get install -y --no-install-recommends postgresql-client-${PG_VER} postgresql-${PG_VER} postgresql-server-dev-${PG_VER} + - sudo systemctl stop postgresql -script: bash ./travis/pg-travis-test.sh +script: travis/pg-travis-test.sh diff --git a/README.md b/README.md index 96e6274..4a96831 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Build Status](https://travis-ci.org/postgrespro/jsquery.svg?branch=master)](https://travis-ci.org/postgrespro/jsquery) +[![Build Status](https://app.travis-ci.com/postgrespro/jsquery.svg?branch=master)](https://app.travis-ci.com/postgrespro/jsquery) [![codecov](https://codecov.io/gh/postgrespro/jsquery/branch/master/graph/badge.svg)](https://codecov.io/gh/postgrespro/jsquery) [![GitHub license](https://img.shields.io/badge/license-PostgreSQL-blue.svg)](https://raw.githubusercontent.com/postgrespro/jsquery/master/LICENSE) diff --git a/travis/dep-ubuntu-llvm.sh b/travis/dep-ubuntu-llvm.sh deleted file mode 100755 index e640d5b..0000000 --- a/travis/dep-ubuntu-llvm.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cat ./travis/llvm-snapshot.gpg.key | sudo apt-key add - -echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-$(lsb_release -cs)-$LLVM_VER main" | sudo tee /etc/apt/sources.list.d/llvm.list diff --git a/travis/dep-ubuntu-postgres.sh b/travis/dep-ubuntu-postgres.sh index 41c7d34..b8e1da0 100755 --- a/travis/dep-ubuntu-postgres.sh +++ b/travis/dep-ubuntu-postgres.sh @@ -1,4 +1,4 @@ #!/bin/sh -cat ./travis/postgresql.gpg.key | sudo apt-key add - -echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PG_VER" | sudo tee /etc/apt/sources.list.d/pgdg.list +curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg +echo "deb http://apt-archive.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PG_VER" diff --git a/travis/llvm-snapshot.gpg.key b/travis/llvm-snapshot.gpg.key deleted file mode 100644 index aa6b105..0000000 --- a/travis/llvm-snapshot.gpg.key +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.12 (GNU/Linux) - -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 -bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw== -=j+4q ------END PGP PUBLIC KEY BLOCK----- diff --git a/travis/pg-travis-test.sh b/travis/pg-travis-test.sh index 18a393f..c17c1a9 100755 --- a/travis/pg-travis-test.sh +++ b/travis/pg-travis-test.sh @@ -1,193 +1,21 @@ #!/bin/bash +set -ev -set -eux +export PATH=/usr/lib/postgresql/$PG_VER/bin:$PATH +export PGDATA=/var/lib/postgresql/$PG_VER/test +export COPT=-Werror +export USE_PGXS=1 -echo -en 'travis_fold:start:pg_install\\r' && echo 'PostgreSQL installation' +sudo chmod 1777 /var/lib/postgresql/$PG_VER +sudo chmod 1777 /var/run/postgresql -sudo apt-get update +make clean +make -# bug: http://www.postgresql.org/message-id/20130508192711.GA9243@msgid.df7cb.de -sudo update-alternatives --remove-all postmaster.1.gz +sudo -E env PATH=$PATH make install -# stop all existing instances (because of https://github.com/travis-ci/travis-cookbooks/pull/221) -sudo service postgresql stop -# ... and make sure they don't come back -echo 'exit 0' | sudo tee /etc/init.d/postgresql -sudo chmod a+x /etc/init.d/postgresql +/usr/lib/postgresql/$PG_VER/bin/initdb -# install PostgreSQL -if [ $CHECK_TYPE = "valgrind" ]; then - # install required packages - apt_packages="build-essential libgd-dev valgrind lcov" - sudo apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" -y install -qq $apt_packages - - set -e - - pushd ~ - CUSTOM_PG_BIN=$PWD/pg_bin - CUSTOM_PG_SRC=$PWD/postgresql - - curl "https://ftp.postgresql.org/pub/source/v$PG_VER/postgresql-$PG_VER.tar.bz2" -o postgresql.tar.bz2 - mkdir $CUSTOM_PG_SRC - - tar \ - --extract \ - --file postgresql.tar.bz2 \ - --directory $CUSTOM_PG_SRC \ - --strip-components 1 - - cd $CUSTOM_PG_SRC - - # enable Valgrind support - sed -i.bak "s/\/* #define USE_VALGRIND *\//#define USE_VALGRIND/g" src/include/pg_config_manual.h - - # enable additional options - ./configure \ - CFLAGS='-Og -ggdb3 -fno-omit-frame-pointer' \ - --enable-cassert \ - --enable-coverage \ - --prefix=$CUSTOM_PG_BIN \ - --quiet - - # build & install PG - time make -s -j4 && make -s install - - # override default PostgreSQL instance - export PATH=$CUSTOM_PG_BIN/bin:$PATH - export LD_LIBRARY_PATH=$CUSTOM_PG_BIN/lib - - popd - set +e - prefix=$CUSTOM_PG_BIN -else - apt_packages="postgresql-$PG_VER postgresql-server-dev-$PG_VER postgresql-common build-essential libgd-dev" - sudo apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" -y install -qq $apt_packages - prefix=/usr/lib/postgresql/$PG_VER -fi - -# config path -pg_ctl_path=$prefix/bin/pg_ctl -initdb_path=$prefix/bin/initdb -config_path=$prefix/bin/pg_config - -# exit code -status=0 - -echo -en 'travis_fold:end:pg_install\\r' - -# perform code analysis if necessary -if [ $CHECK_TYPE = "static" ]; then - echo -en 'travis_fold:start:static_analysis\\r' && echo 'Static analysis' - - if [ "$CC" = "clang" ]; then - sudo apt-get -y install -qq clang-$LLVM_VER - - scan-build-$LLVM_VER --status-bugs \ - -disable-checker deadcode.DeadStores \ - make USE_PGXS=1 USE_ASSERT_CHECKING=1 PG_CONFIG=$config_path || status=$? - - elif [ "$CC" = "gcc" ]; then - sudo apt-get -y install -qq cppcheck - - cppcheck --template "{file} ({line}): {severity} ({id}): {message}" \ - --enable=warning,portability,performance \ - --suppress=redundantAssignment \ - --suppress=uselessAssignmentPtrArg \ - --suppress=incorrectStringBooleanError \ - --std=c89 *.c *.h 2> cppcheck.log - - if [ -s cppcheck.log ]; then - cat cppcheck.log - status=1 # error - fi - fi - - # don't forget to "make clean" - make clean USE_PGXS=1 PG_CONFIG=$config_path - echo -en 'travis_fold:end:static_analysis\\r' - exit $status -fi - -echo -en 'travis_fold:start:build_extension\\r' && echo 'Build extension' - -# build extension (using CFLAGS_SL for gcov) -if [ $CHECK_TYPE == "valgrind" ]; then - make USE_PGXS=1 USE_ASSERT_CHECKING=1 PG_CONFIG=$config_path - make install USE_PGXS=1 PG_CONFIG=$config_path -else - make USE_PGXS=1 USE_ASSERT_CHECKING=1 CC=$CC PG_CONFIG=$config_path CFLAGS_SL="$($config_path --cflags_sl) -coverage" - sudo make install USE_PGXS=1 PG_CONFIG=$config_path -fi - -echo -en 'travis_fold:end:build_extension\\r' - -echo -en 'travis_fold:start:run_tests\\r' && echo 'Run tests' - -# enable core dumps and specify their path -ulimit -c unlimited -S -echo '/tmp/%e-%s-%p.core' | sudo tee /proc/sys/kernel/core_pattern - -# set permission to write postgres locks -sudo chown $USER /var/run/postgresql/ - -# create cluster 'test' -CLUSTER_PATH=$(pwd)/test_cluster -$initdb_path -D $CLUSTER_PATH -U $USER -A trust - -# start cluster 'test' -echo "port = 55435" >> $CLUSTER_PATH/postgresql.conf -if [ $CHECK_TYPE = "valgrind" ]; then - PGCTLTIMEOUT=600 \ - valgrind --leak-check=no --gen-suppressions=all \ - --suppressions=$CUSTOM_PG_SRC/src/tools/valgrind.supp --time-stamp=yes \ - --log-file=/tmp/pid-%p.log --trace-children=yes \ - $pg_ctl_path -D $CLUSTER_PATH start -l postgres.log -w -else - $pg_ctl_path -D $CLUSTER_PATH start -l postgres.log -w -fi - -# run regression tests -PGPORT=55435 PGUSER=$USER PG_CONFIG=$config_path make installcheck USE_PGXS=1 || status=$? - -# stop cluster -$pg_ctl_path -D $CLUSTER_PATH stop -l postgres.log -w - -echo -en 'travis_fold:end:run_tests\\r' - -echo -en 'travis_fold:start:output\\r' && echo 'Check output' - -# show diff if it exists -if test -f regression.diffs; then cat regression.diffs; fi - -# show valgrind logs if needed -if [ $CHECK_TYPE = "valgrind" ]; then - for f in ` find /tmp -name pid-*.log ` ; do - if grep -q 'Command: [^ ]*/postgres' $f && grep -q 'ERROR SUMMARY: [1-9]' $f; then - echo "========= Contents of $f" - cat $f - status=1 - fi - done -fi - -# check core dumps if any -for corefile in $(find /tmp/ -name '*.core' 2>/dev/null) ; do - binary=$(gdb -quiet -core $corefile -batch -ex 'info auxv' | grep AT_EXECFN | perl -pe "s/^.*\"(.*)\"\$/\$1/g") - echo dumping $corefile for $binary - gdb --batch --quiet -ex "thread apply all bt full" -ex "quit" $binary $corefile -done - -echo -en 'travis_fold:end:output\\r' - -echo -en 'travis_fold:start:coverage\\r' && echo 'Coverage check' - -#generate *.gcov files -if [ $CC = "clang" ]; then - bash <(curl -s https://codecov.io/bash) -x "llvm-cov gcov" -else - bash <(curl -s https://codecov.io/bash) -fi - -echo -en 'travis_fold:end:coverage\\r' - -exit $status +/usr/lib/postgresql/$PG_VER/bin/pg_ctl -l logfile start +make installcheck +/usr/lib/postgresql/$PG_VER/bin/pg_ctl stop diff --git a/travis/postgresql.gpg.key b/travis/postgresql.gpg.key deleted file mode 100644 index 8480576..0000000 --- a/travis/postgresql.gpg.key +++ /dev/null @@ -1,77 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -=DA1T ------END PGP PUBLIC KEY BLOCK----- From c6a07adb886ba01cc6875c7ba26cb58398eef664 Mon Sep 17 00:00:00 2001 From: Ekaterina Sokolova Date: Wed, 23 Oct 2024 15:45:42 +0300 Subject: [PATCH 2/2] Second attempt to revive Travis + update copyright. --- .dockerignore | 10 +++++++ .travis.yml | 32 +++++++++++----------- LICENSE | 2 +- jsonb_gin_ops.c | 2 +- jsquery.h | 2 +- jsquery_constr.c | 2 +- jsquery_extract.c | 2 +- jsquery_gram.y | 2 +- jsquery_io.c | 2 +- jsquery_op.c | 2 +- jsquery_scan.l | 2 +- jsquery_support.c | 2 +- travis/Dockerfile.in | 33 +++++++++++++++++++++++ travis/dep-ubuntu-postgres.sh | 4 --- travis/docker-compose.yml | 3 +++ travis/mk_dockerfile.sh | 16 +++++++++++ travis/pg-travis-test.sh | 21 --------------- travis/run_tests.sh | 50 +++++++++++++++++++++++++++++++++++ 18 files changed, 139 insertions(+), 50 deletions(-) create mode 100644 .dockerignore create mode 100644 travis/Dockerfile.in delete mode 100755 travis/dep-ubuntu-postgres.sh create mode 100644 travis/docker-compose.yml create mode 100755 travis/mk_dockerfile.sh delete mode 100755 travis/pg-travis-test.sh create mode 100644 travis/run_tests.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c8bc8b2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +# Don't send some content to the Docker host when building +travis +.git +.travis.yml + +*.gcno +*.gcda +*.gcov +*.so +*.o diff --git a/.travis.yml b/.travis.yml index 13fefac..d779913 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,14 @@ +os: linux + dist: jammy language: c +services: +- docker + env: +- PG_VER=17 - PG_VER=16 - PG_VER=15 - PG_VER=14 @@ -10,24 +16,20 @@ env: - PG_VER=12 - PG_VER=11 - PG_VER=10 -- PG_VER=9.6 -- PG_VER=9.5 -- PG_VER=9.4 +#- PG_VER=9.6 +#- PG_VER=9.5 +#- PG_VER=9.4 jobs: allow_failures: - env: PG_VER=12 - env: PG_VER=11 - env: PG_VER=10 - - env: PG_VER=9.6 - - env: PG_VER=9.5 - - env: PG_VER=9.4 - -before_script: - - sudo apt-get -y install -qq wget ca-certificates - - travis/dep-ubuntu-postgres.sh - - sudo apt-get update - - sudo apt-get install -y --no-install-recommends postgresql-client-${PG_VER} postgresql-${PG_VER} postgresql-server-dev-${PG_VER} - - sudo systemctl stop postgresql - -script: travis/pg-travis-test.sh + +before_install: cp travis/* . + +install: + - ./mk_dockerfile.sh + - docker-compose build + +script: docker-compose run $(bash <(curl -s https://codecov.io/env)) tests diff --git a/LICENSE b/LICENSE index b5411fb..d7d42b9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ JsQuery is released under the PostgreSQL License, a liberal Open Source license, similar to the BSD or MIT licenses. -Copyright (c) 2014-2018, Postgres Professional +Copyright (c) 2014-2024, Postgres Professional Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group Portions Copyright (c) 1994, The Regents of the University of California diff --git a/jsonb_gin_ops.c b/jsonb_gin_ops.c index 9a72c20..04cf110 100644 --- a/jsonb_gin_ops.c +++ b/jsonb_gin_ops.c @@ -4,7 +4,7 @@ * Support GIN over jsonb with jsquery operation * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2017-2021, Postgres Professional + * Portions Copyright (c) 2017-2024, Postgres Professional * Author: Alexander Korotkov * * IDENTIFICATION diff --git a/jsquery.h b/jsquery.h index 86226eb..0b81016 100644 --- a/jsquery.h +++ b/jsquery.h @@ -4,7 +4,7 @@ * Definitions of jsquery datatype * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2017-2021, Postgres Professional + * Portions Copyright (c) 2017-2024, Postgres Professional * Author: Teodor Sigaev * * IDENTIFICATION diff --git a/jsquery_constr.c b/jsquery_constr.c index bfd0468..a49e5bb 100644 --- a/jsquery_constr.c +++ b/jsquery_constr.c @@ -4,7 +4,7 @@ * Functions and operations to manipulate jsquery * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2017-2021, Postgres Professional + * Portions Copyright (c) 2017-2024, Postgres Professional * Author: Teodor Sigaev * * IDENTIFICATION diff --git a/jsquery_extract.c b/jsquery_extract.c index 4517706..8fc7e0a 100644 --- a/jsquery_extract.c +++ b/jsquery_extract.c @@ -4,7 +4,7 @@ * Functions and operations to support jsquery in indexes * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2017-2021, Postgres Professional + * Portions Copyright (c) 2017-2024, Postgres Professional * Author: Alexander Korotkov * * IDENTIFICATION diff --git a/jsquery_gram.y b/jsquery_gram.y index fd05e7a..a85ec1a 100644 --- a/jsquery_gram.y +++ b/jsquery_gram.y @@ -4,7 +4,7 @@ * Grammar definitions for jsquery datatype * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2017-2021, Postgres Professional + * Portions Copyright (c) 2017-2024, Postgres Professional * Author: Teodor Sigaev * * IDENTIFICATION diff --git a/jsquery_io.c b/jsquery_io.c index 8a4b9ac..267e046 100644 --- a/jsquery_io.c +++ b/jsquery_io.c @@ -4,7 +4,7 @@ * I/O functions for jsquery datatype * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2016-2021, Postgres Professional + * Portions Copyright (c) 2016-2024, Postgres Professional * Author: Teodor Sigaev * * IDENTIFICATION diff --git a/jsquery_op.c b/jsquery_op.c index 29cfe3d..aac95ea 100644 --- a/jsquery_op.c +++ b/jsquery_op.c @@ -4,7 +4,7 @@ * Functions and operations over jsquery/jsonb datatypes * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2017-2021, Postgres Professional + * Portions Copyright (c) 2017-2024, Postgres Professional * Author: Teodor Sigaev * * IDENTIFICATION diff --git a/jsquery_scan.l b/jsquery_scan.l index f145650..dcd852b 100644 --- a/jsquery_scan.l +++ b/jsquery_scan.l @@ -4,7 +4,7 @@ * Lexical parser for jsquery datatype * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2017-2021, Postgres Professional + * Portions Copyright (c) 2017-2024, Postgres Professional * Author: Teodor Sigaev * * IDENTIFICATION diff --git a/jsquery_support.c b/jsquery_support.c index 747776b..936edd9 100644 --- a/jsquery_support.c +++ b/jsquery_support.c @@ -4,7 +4,7 @@ * Functions and operations to support jsquery * * Copyright (c) 2014, PostgreSQL Global Development Group - * Portions Copyright (c) 2017-2021, Postgres Professional + * Portions Copyright (c) 2017-2024, Postgres Professional * Author: Teodor Sigaev * * IDENTIFICATION diff --git a/travis/Dockerfile.in b/travis/Dockerfile.in new file mode 100644 index 0000000..6662524 --- /dev/null +++ b/travis/Dockerfile.in @@ -0,0 +1,33 @@ +FROM postgres:${PG_VERSION}-alpine + +# Install dependencies +RUN apk add --no-cache \ + linux-headers \ + openssl curl \ + perl perl-ipc-run perl-dev perl-app-cpanminus perl-dbi \ + make musl-dev gcc bison flex coreutils \ + zlib-dev libedit-dev \ + pkgconf icu-dev clang clang15 clang-analyzer; + +# Environment +ENV LANG=C.UTF-8 PGDATA=/pg/data + +# Make directories +RUN mkdir -p ${PGDATA} && \ + mkdir -p /pg/testdir + +COPY run_tests.sh /run.sh +RUN chmod 755 /run.sh + +COPY . /pg/testdir +WORKDIR /pg/testdir + +# Grant privileges +RUN chown postgres:postgres ${PGDATA} && \ + chown -R postgres:postgres /pg/testdir && \ + chown postgres:postgres /usr/local/include/postgresql/server/ && \ + chmod a+rwx /usr/local/lib/postgresql && \ + chmod a+rwx /usr/local/share/postgresql/extension + +USER postgres +ENTRYPOINT LEVEL=${LEVEL} /run.sh diff --git a/travis/dep-ubuntu-postgres.sh b/travis/dep-ubuntu-postgres.sh deleted file mode 100755 index b8e1da0..0000000 --- a/travis/dep-ubuntu-postgres.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg -echo "deb http://apt-archive.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PG_VER" diff --git a/travis/docker-compose.yml b/travis/docker-compose.yml new file mode 100644 index 0000000..0544d85 --- /dev/null +++ b/travis/docker-compose.yml @@ -0,0 +1,3 @@ +services: + tests: + build: . diff --git a/travis/mk_dockerfile.sh b/travis/mk_dockerfile.sh new file mode 100755 index 0000000..9108d2c --- /dev/null +++ b/travis/mk_dockerfile.sh @@ -0,0 +1,16 @@ +if [ -z ${PG_VERSION+x} ]; then + echo PG_VERSION is not set! + exit 1 +fi + +if [ -z ${LEVEL+x} ]; then + LEVEL=standard +fi + +echo PG_VERSION=${PG_VERSION} +echo LEVEL=${LEVEL} + +sed \ + -e 's/${PG_VERSION}/'${PG_VERSION}/g \ + -e 's/${LEVEL}/'${LEVEL}/g \ +Dockerfile.in > Dockerfile diff --git a/travis/pg-travis-test.sh b/travis/pg-travis-test.sh deleted file mode 100755 index c17c1a9..0000000 --- a/travis/pg-travis-test.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -set -ev - -export PATH=/usr/lib/postgresql/$PG_VER/bin:$PATH -export PGDATA=/var/lib/postgresql/$PG_VER/test -export COPT=-Werror -export USE_PGXS=1 - -sudo chmod 1777 /var/lib/postgresql/$PG_VER -sudo chmod 1777 /var/run/postgresql - -make clean -make - -sudo -E env PATH=$PATH make install - -/usr/lib/postgresql/$PG_VER/bin/initdb - -/usr/lib/postgresql/$PG_VER/bin/pg_ctl -l logfile start -make installcheck -/usr/lib/postgresql/$PG_VER/bin/pg_ctl stop diff --git a/travis/run_tests.sh b/travis/run_tests.sh new file mode 100644 index 0000000..a796830 --- /dev/null +++ b/travis/run_tests.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# +# Copyright (c) 2024, Postgres Professional +# +# supported levels: +# * standard +# + +set -ev +status=0 + +# show pg_config just in case +pg_config + +# build and install extension (using PG_CPPFLAGS and SHLIB_LINK for gcov) +make USE_PGXS=1 PG_CPPFLAGS="-coverage" SHLIB_LINK="-coverage" install + +# initialize database +initdb -D $PGDATA + +# set appropriate port +export PGPORT=55435 +echo "port = $PGPORT" >> $PGDATA/postgresql.conf + +# restart cluster 'test' +pg_ctl start -l /tmp/postgres.log -w || status=$? + +# something's wrong, exit now! +if [ $status -ne 0 ]; then cat /tmp/postgres.log; exit 1; fi + +# run regression tests +export PG_REGRESS_DIFF_OPTS="-w -U3" # for alpine's diff (BusyBox) +make USE_PGXS=1 installcheck || status=$? + +# show diff if it exists +if test -f regression.diffs; then cat regression.diffs; fi + +# something's wrong, exit now! +if [ $status -ne 0 ]; then exit 1; fi + +# generate *.gcov files +gcov src/*.c src/*.h + + +set +ev + + +# send coverage stats to Codecov +bash <(curl -s https://codecov.io/bash) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy