Skip to content

PG Packages Testing

PG Packages Testing #7

Workflow file for this run

name: PG Packages Testing
on:
workflow_dispatch:
inputs:
ppg-repo:
description: ppg repo to be tested
required: true
default: ppg-15.14
type: choice
options:
- ppg-17.6
- ppg-16.10
- ppg-15.14
- ppg-14.19
- ppg-13.22
ppg-repo-type:
description: ppg repo type
required: true
default: testing
type: choice
options:
- experimental
- testing
- release
platform:
description: platform to be tested on
required: true
default: oraclelinux:10
type: choice
options:
- oraclelinux:10
- oraclelinux:9
- oraclelinux:8
- ubuntu:noble
- ubuntu:jammy
- debian:bookworm
- debian:bullseye
debugging:
description: tmate session required
default: false
type: boolean
jobs:
test-package:
runs-on: ubuntu-latest
container:
image: ${{ inputs.platform }}
steps:
- name: Install basic tools
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
dnf makecache
dnf install -y wget vim ca-certificates gcc gcc-c++ make perl-core
else
apt-get update
apt-get install -y wget curl vim lsb-release ca-certificates build-essential perl
fi
shell: bash
- name: Check OS
run: cat /etc/os-release
- name: Get OS version
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
OS_VER=$(rpm --eval %rhel)
else
OS_VER="$(lsb_release -sc)"
fi
echo "OS_VER="$OS_VER"" >> $GITHUB_ENV
shell: bash
- name: Get PG major version
run: |
PG_MAJOR=$(echo "${{ inputs.ppg-repo }}" | cut -d'-' -f2 | cut -d'.' -f1)
echo "PG_MAJOR="$PG_MAJOR"" >> $GITHUB_ENV
shell: bash
- name: OS Version
run: echo OS_VER = ${{ env.OS_VER }}
- name: Enable required repositories
run: |
set -x
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
dnf config-manager --set-enabled ol${{ env.OS_VER }}_codeready_builder
dnf clean all
rm -r /var/cache/dnf
dnf -y upgrade
if [[ ${{ env.OS_VER }} -eq 8 ]]; then
dnf -y module disable postgresql
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
else
yum install oracle-epel-release-el${{ env.OS_VER }}
fi
fi
shell: bash
- name: Enable ppg repository
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
else
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
dpkg -i percona-release_latest.generic_all.deb
rm -f percona-release_latest.generic_all.deb
fi
percona-release disable all
percona-release enable ${{ inputs.ppg-repo }} ${{ inputs.ppg-repo-type }}
shell: bash
- name: Set RPM install list
if: ${{ contains(inputs.platform, 'linux') }}
run: |
PG="percona-postgresql${{ env.PG_MAJOR }} percona-postgresql${{ env.PG_MAJOR }}-server percona-postgresql${{ env.PG_MAJOR }}-contrib percona-postgresql${{ env.PG_MAJOR }}-devel percona-postgresql${{ env.PG_MAJOR }}-docs percona-postgresql${{ env.PG_MAJOR }}-libs percona-postgresql${{ env.PG_MAJOR }}-llvmjit percona-postgresql${{ env.PG_MAJOR }}-plpython3 percona-postgresql${{ env.PG_MAJOR }}-plperl percona-postgresql${{ env.PG_MAJOR }}-pltcl percona-postgresql${{ env.PG_MAJOR }}-test"
PG_COMMON="percona-postgresql-common percona-postgresql-client-common"
PPG_SERVER="percona-ppg-server${{ env.PG_MAJOR }} percona-ppg-server-ha${{ env.PG_MAJOR }}"
AUDIT="percona-pgaudit${{ env.PG_MAJOR }} percona-pgaudit${{ env.PG_MAJOR }}_set_user"
PGBACKREST="percona-pgbackrest"
REPACK="percona-pg_repack${{ env.PG_MAJOR }}"
PATRONI="percona-patroni"
PGSM="percona-pg_stat_monitor${{ env.PG_MAJOR }} percona-pg_stat_monitor${{ env.PG_MAJOR }}-debuginfo"
PGBADGER="percona-pgbadger"
PGBOUNCER="percona-pgbouncer"
PGPOOL="percona-pgpool-II-pg${{ env.PG_MAJOR }} percona-pgpool-II-pg${{ env.PG_MAJOR }}-extensions"
POSTGIS="percona-postgis33_${{ env.PG_MAJOR }} percona-postgis33_${{ env.PG_MAJOR }}-client percona-postgis33_${{ env.PG_MAJOR }}-client-debuginfo percona-postgis33_${{ env.PG_MAJOR }}-debuginfo percona-postgis33_${{ env.PG_MAJOR }}-devel percona-postgis33_${{ env.PG_MAJOR }}-docs percona-postgis33_${{ env.PG_MAJOR }}-gui percona-postgis33_${{ env.PG_MAJOR }}-gui-debuginfo percona-postgis33_${{ env.PG_MAJOR }}-llvmjit percona-postgis33_${{ env.PG_MAJOR }}-utils"
WAL2JSON="percona-wal2json${{ env.PG_MAJOR }}"
PGGATHER="percona-pg_gather"
PGVECTOR="percona-pgvector_${{ env.PG_MAJOR }} percona-pgvector_${{ env.PG_MAJOR }}-debuginfo percona-pgvector_${{ env.PG_MAJOR }}-debugsource percona-pgvector_${{ env.PG_MAJOR }}-llvmjit"
ETCD="etcd python3-etcd"
HAPROXY="percona-haproxy"
echo "INSTALL_LIST="$PG $PG_COMMON $PPG_SERVER $AUDIT $PGBACKREST $REPACK $PATRONI $PGSM $PGBADGER $PGBOUNCER $PGPOOL $POSTGIS $WAL2JSON $PGGATHER $PGVECTOR $ETCD $HAPROXY"" >> $GITHUB_ENV
- name: Set DEB install list
if: ${{ !contains(inputs.platform, 'linux') }}
run: |
PG="percona-postgresql percona-postgresql-${{ env.PG_MAJOR }} percona-postgresql-all percona-postgresql-contrib percona-postgresql-doc percona-postgresql-doc-${{ env.PG_MAJOR }} percona-postgresql-plperl-${{ env.PG_MAJOR }} percona-postgresql-plpython3-${{ env.PG_MAJOR }} percona-postgresql-pltcl-${{ env.PG_MAJOR }} percona-postgresql-server-dev-${{ env.PG_MAJOR }} percona-postgresql-server-dev-all percona-postgresql-${{ env.PG_MAJOR }}-dbgsym percona-postgresql-plperl-${{ env.PG_MAJOR }}-dbgsym percona-postgresql-plpython3-${{ env.PG_MAJOR }}-dbgsym percona-postgresql-pltcl-${{ env.PG_MAJOR }}-dbgsym percona-postgresql-plpython3-${{ env.PG_MAJOR }} percona-postgresql-plpython3-${{ env.PG_MAJOR }}-dbgsym"
PG_COMMON="percona-postgresql-client percona-postgresql-client-${{ env.PG_MAJOR }} percona-postgresql-common percona-postgresql-client-${{ env.PG_MAJOR }}-dbgsym postgresql-client-common postgresql-common"
PPG_SERVER="percona-ppg-server-${{ env.PG_MAJOR }} percona-ppg-server-ha-${{ env.PG_MAJOR }}"
AUDIT="percona-postgresql-${{ env.PG_MAJOR }}-pgaudit percona-postgresql-${{ env.PG_MAJOR }}-pgaudit-dbgsym percona-pgaudit${{ env.PG_MAJOR }}-set-user percona-pgaudit${{ env.PG_MAJOR }}-set-user-dbgsym"
PGBACKREST="percona-pgbackrest percona-pgbackrest-doc percona-pgbackrest-dbgsym"
REPACK="percona-postgresql-${{ env.PG_MAJOR }}-repack percona-postgresql-${{ env.PG_MAJOR }}-repack-dbgsym"
PATRONI="percona-patroni percona-patroni-doc"
PGSM="percona-pg-stat-monitor${{ env.PG_MAJOR }} percona-pg-stat-monitor${{ env.PG_MAJOR }}-dbgsym"
PGBADGER="percona-pgbadger"
PGBOUNCER="percona-pgbouncer percona-pgbouncer-dbgsym"
PGPOOL="percona-pgpool2 libpgpool2"
POSTGIS="percona-postgresql-${{ env.PG_MAJOR }}-postgis-3 percona-postgresql-${{ env.PG_MAJOR }}-postgis-3-scripts percona-postgresql-postgis-scripts percona-postgresql-postgis percona-postgis"
WAL2JSON="percona-postgresql-${{ env.PG_MAJOR }}-wal2json percona-postgresql-${{ env.PG_MAJOR }}-wal2json-dbgsym"
PGGATHER="percona-pg-gather"
PGVECTOR="percona-postgresql-${{ env.PG_MAJOR }}-pgvector"
ETCD="etcd"
HAPROXY="percona-haproxy"
echo "INSTALL_LIST="$PG $PG_COMMON $PPG_SERVER $AUDIT $PGBACKREST $REPACK $PATRONI $PGSM $PGBADGER $PGBOUNCER $PGPOOL $POSTGIS $WAL2JSON $PGGATHER $PGVECTOR $ETCD $HAPROXY"" >> $GITHUB_ENV
- name: Install Packages
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
yum -y install ${{ env.INSTALL_LIST }}
else
DEBIAN_FRONTEND=noninteractive apt-get -y install ${{ env.INSTALL_LIST }}
fi
shell: bash
- name: postgresql Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-postgresql)"
else
echo "package version = $(dpkg -s percona-postgresql-${{ env.PG_MAJOR }} | grep ^Version)"
fi
echo "binary version = $(psql --version)"
shell: bash
- name: postgresql-common Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-postgresql-common)"
rpm -qi percona-postgresql-common | grep ^Version
else
echo "package version = $(dpkg -s percona-postgresql-common | grep ^Version)"
apt-cache policy percona-postgresql-common | grep -E '^\s*Installed:'
fi
shell: bash
continue-on-error: true
- name: pgbackrest Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pgbackrest)"
else
echo "package version = $(dpkg -s percona-pgbackrest | grep ^Version)"
fi
echo "binary version = $(pgbackrest --version)"
shell: bash
continue-on-error: true
- name: pg_stat_monitor Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pg_stat_monitor)"
cat /usr/pgsql-${{ env.PG_MAJOR }}/share/extension/pg_stat_monitor.control | grep 'version'
else
echo "package version = $(dpkg -s percona-pg-stat-monitor${{ env.PG_MAJOR }} | grep ^Version)"
cat /usr/share/postgresql/${{ env.PG_MAJOR }}/extension/pg_stat_monitor.control | grep 'version'
fi
shell: bash
continue-on-error: true
- name: pg_repack Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pg_repack)"
else
echo "package version = $(dpkg -s percona-postgresql-${{ env.PG_MAJOR }}-repack | grep ^Version)"
fi
echo "binary version = $(pg_repack --version)"
shell: bash
continue-on-error: true
- name: pgaudit Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pgaudit)"
cat /usr/pgsql-${{ env.PG_MAJOR }}/share/extension/pgaudit.control | grep 'version'
else
echo "package version = $(dpkg -s percona-postgresql-${{ env.PG_MAJOR }}-pgaudit | grep ^Version)"
cat /usr/share/postgresql/${{ env.PG_MAJOR }}/extension/pgaudit.control | grep 'version'
fi
shell: bash
continue-on-error: true
- name: patroni Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-patroni)"
else
echo "package version = $(dpkg -s percona-patroni | grep ^Version)"
fi
echo "binary version = $(patroni --version)"
shell: bash
continue-on-error: true
- name: pgaudit_set_user Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep set_user)"
cat /usr/pgsql-${{ env.PG_MAJOR }}/share/extension/set_user.control | grep 'version'
else
echo "package version = $(dpkg -s percona-pgaudit${{ env.PG_MAJOR }}-set-user | grep ^Version)"
cat /usr/share/postgresql/${{ env.PG_MAJOR }}/extension/set_user.control | grep 'version'
fi
shell: bash
continue-on-error: true
- name: pgbadger Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pgbadger)"
else
echo "package version = $(dpkg -s percona-pgbadger | grep ^Version)"
fi
echo "binary version = $(pgbadger --version)"
shell: bash
continue-on-error: true
- name: pgbouncer Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pgbouncer)"
else
echo "package version = $(dpkg -s percona-pgbouncer | grep ^Version)"
fi
echo "binary version = $(pgbouncer --version)"
shell: bash
continue-on-error: true
- name: pgpool2 Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pgpool)"
else
echo "package version = $(dpkg -s percona-pgpool2 | grep ^Version)"
fi
pgpool --version
shell: bash
continue-on-error: true
- name: postgis Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-postgis)"
cat /usr/pgsql-${{ env.PG_MAJOR }}/share/extension/postgis.control | grep 'version'
else
echo "package version = $(dpkg -s percona-postgresql-${{ env.PG_MAJOR }}-postgis-3 | grep ^Version)"
cat /usr/share/postgresql/${{ env.PG_MAJOR }}/extension/postgis-3.control | grep 'version'
fi
shell: bash
continue-on-error: true
- name: wal2json Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-wal2json)"
rpm -qi percona-wal2json${{ env.PG_MAJOR }} | grep ^Version
else
echo "package version = $(dpkg -s percona-postgresql-${{ env.PG_MAJOR }}-wal2json | grep ^Version)"
apt-cache policy percona-postgresql-${{ env.PG_MAJOR }}-wal2json | grep -E '^\s*Installed:'
fi
shell: bash
continue-on-error: true
- name: haproxy Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-haproxy)"
else
echo "package version = $(dpkg -s percona-haproxy | grep ^Version)"
fi
echo "binary version = $(haproxy -v)"
shell: bash
continue-on-error: true
- name: etcd Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep etcd)"
else
echo "package version = $(dpkg -s etcd | grep ^Version)"
fi
echo "binary version = $(etcd --version)"
shell: bash
continue-on-error: true
- name: pg_gather Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pg_gather)"
rpm -qi percona-pg_gather | grep ^Version
else
echo "package version = $(dpkg -s percona-pg-gather | grep ^Version)"
apt-cache policy percona-pg-gather | grep -E '^\s*Installed:'
fi
shell: bash
continue-on-error: true
- name: pg_vector Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pgvector)"
cat /usr/pgsql-${{ env.PG_MAJOR }}/share/extension/vector.control | grep 'version'
else
echo "package version = $(dpkg -s percona-postgresql-${{ env.PG_MAJOR }}-pgvector | grep ^Version)"
cat /usr/share/postgresql/${{ env.PG_MAJOR }}/extension/vector.control | grep 'version'
fi
shell: bash
continue-on-error: true
- name: telemetry Version Check
run: |
if [[ "${{ inputs.platform }}" == *"linux"* ]]; then
echo "package version = $(rpm -qa | grep percona-pg-telemetry)"
cat /usr/pgsql-${{ env.PG_MAJOR }}/share/extension/percona_pg_telemetry.control | grep 'version'
else
echo "package version = $(dpkg -s percona-pg-telemetry${{ env.PG_MAJOR }} | grep ^Version)"
cat /usr/share/postgresql/${{ env.PG_MAJOR }}/extension/percona_pg_telemetry.control | grep 'version'
fi
shell: bash
continue-on-error: true
- name: enable tmate debugging
if: inputs.debugging && failure()
uses: mxschmitt/action-tmate@v3
timeout-minutes: 60