Skip to content

Commit

Permalink
PG17: Enable ABI on CI
Browse files Browse the repository at this point in the history
Also bump alpine images from 3.18 to 3.19 since last minor PG releases
are not available on 3.18 anymore.
  • Loading branch information
fabriziomello committed Oct 2, 2024
1 parent 7848ae8 commit bcfe9a0
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 13 deletions.
39 changes: 28 additions & 11 deletions .github/workflows/abi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@ jobs:
pg14_abi_min: ${{ steps.config.outputs.pg14_abi_min }}
pg15_abi_min: ${{ steps.config.outputs.pg15_abi_min }}
pg16_abi_min: ${{ steps.config.outputs.pg16_abi_min }}
pg17_abi_min: ${{ steps.config.outputs.pg17_abi_min }}
pg14_latest: ${{ steps.config.outputs.pg14_latest }}
pg15_latest: ${{ steps.config.outputs.pg15_latest }}
pg16_latest: ${{ steps.config.outputs.pg16_latest }}
pg17_latest: ${{ steps.config.outputs.pg17_latest }}

steps:
- name: Checkout source code
Expand All @@ -43,37 +45,47 @@ jobs:
fail-fast: false
matrix:
dir: [ "forward", "backward" ]
pg: [ 14, 15, 16 ]
os: [ windows-2019 ]
pg: [ 14, 15, 16, 17 ]
include:
- dir: backward
pg: 14
builder: ${{ fromJson(needs.config.outputs.pg14_latest) }}-alpine3.18
builder: ${{ fromJson(needs.config.outputs.pg14_latest) }}-alpine3.19
tester: ${{ fromJson(needs.config.outputs.pg14_abi_min) }}-alpine
ignores: memoize
- dir: forward
pg: 14
builder: ${{ fromJson(needs.config.outputs.pg14_abi_min) }}-alpine
tester: ${{ fromJson(needs.config.outputs.pg14_latest) }}-alpine3.18
tester: ${{ fromJson(needs.config.outputs.pg14_latest) }}-alpine3.19
- dir: backward
pg: 15
builder: ${{ fromJson(needs.config.outputs.pg15_latest) }}-alpine3.18
builder: ${{ fromJson(needs.config.outputs.pg15_latest) }}-alpine3.19
tester: ${{ fromJson(needs.config.outputs.pg15_abi_min) }}-alpine
- dir: forward
pg: 15
builder: ${{ fromJson(needs.config.outputs.pg15_abi_min) }}-alpine
tester: ${{ fromJson(needs.config.outputs.pg15_latest) }}-alpine3.18
tester: ${{ fromJson(needs.config.outputs.pg15_latest) }}-alpine3.19
- dir: backward
pg: 16
builder: ${{ fromJson(needs.config.outputs.pg16_latest) }}-alpine3.18
builder: ${{ fromJson(needs.config.outputs.pg16_latest) }}-alpine3.19
tester: ${{ fromJson(needs.config.outputs.pg16_abi_min) }}-alpine
# this test has issues with 16.0 version of pg_dump binary
# which affects backwards test only
# which affects backwards test only
ignores: pg_dump_unprivileged
- dir: forward
pg: 16
builder: ${{ fromJson(needs.config.outputs.pg16_abi_min) }}-alpine
tester: ${{ fromJson(needs.config.outputs.pg16_latest) }}-alpine3.18
tester: ${{ fromJson(needs.config.outputs.pg16_latest) }}-alpine3.19
- dir: backward
pg: 17
builder: ${{ fromJson(needs.config.outputs.pg17_latest) }}-alpine3.19
tester: ${{ fromJson(needs.config.outputs.pg17_abi_min) }}-alpine
# this test has issues with 16.0 version of pg_dump binary
# which affects backwards test only
# ignores: pg_dump_unprivileged
- dir: forward
pg: 17
builder: ${{ fromJson(needs.config.outputs.pg17_abi_min) }}-alpine
tester: ${{ fromJson(needs.config.outputs.pg17_latest) }}-alpine3.19

steps:

Expand All @@ -87,14 +99,16 @@ jobs:
docker pull ${BUILDER_IMAGE}
docker buildx imagetools inspect ${BUILDER_IMAGE}
docker run -i --rm -v $(pwd):/mnt -e EXTRA_PKGS="${EXTRA_PKGS}" ${BUILDER_IMAGE} bash <<"EOF"
apk add cmake gcc make build-base krb5-dev git ${EXTRA_PKGS}
apk add cmake gcc make build-base krb5-dev git tzdata ${EXTRA_PKGS}
# We run the same extension on different docker images, old versions
# have OpenSSL 1.1 and the new versions have OpenSSL 3, so we try to
# pin the 1.1. Note that depending on PG version, both images might
# have 1.1 or 3, so we first try to install the versioned 1.1 package,
# and if it's not present, it means the unversioned package is 1.1, so
# we install it.
apk add openssl1.1-compat-dev || apk add openssl-dev
ln -s /usr/share/zoneinfo/UTC /etc/localtime
echo "UTC" > /etc/timezone
git config --global --add safe.directory /mnt
cd /mnt
BUILD_DIR=build_abi BUILD_FORCE_REMOVE=true ./bootstrap
Expand All @@ -111,13 +125,16 @@ jobs:
docker pull ${TEST_IMAGE}
docker buildx imagetools inspect ${TEST_IMAGE}
docker run -i --rm -v $(pwd):/mnt -e EXTRA_PKGS="${EXTRA_PKGS}" ${TEST_IMAGE} bash <<"EOF"
apk add cmake gcc make build-base krb5-dev sudo ${EXTRA_PKGS}
apk add cmake gcc make build-base krb5-dev sudo tzdata ${EXTRA_PKGS}
apk add openssl1.1-compat-dev || apk add openssl-dev
cd /mnt
cp build_abi/install_ext/* `pg_config --sharedir`/extension/
cp build_abi/install_lib/* `pg_config --pkglibdir`
chown -R postgres /mnt
set -o pipefail
[ -f /usr/bin/gmake ] || ln -s /usr/bin/make /usr/bin/gmake
ln -s /usr/share/zoneinfo/UTC /etc/localtime
echo "UTC" > /etc/timezone
sudo -u postgres make -C build_abi -k regresscheck regresscheck-t \
regresscheck-shared IGNORES="${{matrix.ignores}}" | tee installcheck.log
EOF
Expand Down
3 changes: 2 additions & 1 deletion test/postgresql.conf.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
# must be the same as this file.

autovacuum=false
datestyle='Postgres, MDY'
timezone='PST8PDT'
datestyle='ISO, YMD'
hba_file='@TEST_PG_HBA_FILE@'
log_destination='@TEST_PG_LOG_DESTINATION@'
log_directory='@TEST_PG_LOG_DIRECTORY@'
Expand Down
3 changes: 2 additions & 1 deletion tsl/test/postgresql.conf.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# This section has to be equivalent to test/postgresql.conf

autovacuum=false
datestyle='Postgres, MDY'
timezone='PST8PDT'
datestyle='ISO, YMD'
hba_file='@TEST_PG_HBA_FILE@'
log_destination='@TEST_PG_LOG_DESTINATION@'
log_directory='@TEST_PG_LOG_DIRECTORY@'
Expand Down

0 comments on commit bcfe9a0

Please sign in to comment.