PG-377: Enable PPG Jobs for PGSM in GH.

This commit contains following,
1) Regression jobs are enabled against Percona PG distribution for version postgresql 11~14.
2) Regression job is enabled against PGDG PG distribution for version postgresql 14.
3) GH actions names for some of the jobs are changed to clear the clutter in GH repo's action page.
pull/209/head
Naeem Akhter 2022-04-27 15:26:38 +05:00
parent 9fd4cdaae0
commit 80f842fb49
13 changed files with 567 additions and 40 deletions

127
.github/workflows/code-coverage-test.yml vendored Normal file
View File

@ -0,0 +1,127 @@
name: code-coverage-test
on: ["push", "pull_request"]
jobs:
build:
name: coverage-test
runs-on: ubuntu-latest
steps:
- name: Clone postgres repository
uses: actions/checkout@v2
with:
repository: 'postgres/postgres'
ref: 'REL_14_STABLE'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt purge postgresql-client-common postgresql-common postgresql postgresql*
sudo apt-get install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison flex libipc-run-perl -y docbook-xsl docbook-xsl
sudo apt-get install -y libxml2 libxml2-utils libxml2-dev libxslt-dev xsltproc libkrb5-dev libldap2-dev libsystemd-dev gettext tcl-dev libperl-dev
sudo apt-get install -y pkg-config clang-9 llvm-9 llvm-9-dev libselinux1-dev python-dev python3-dev uuid-dev liblz4-dev lcov
sudo rm -rf /var/lib/postgresql/
sudo rm -rf /var/log/postgresql/
sudo rm -rf /etc/postgresql/
sudo rm -rf /usr/lib/postgresql
sudo rm -rf /usr/include/postgresql
sudo rm -rf /usr/share/postgresql
sudo rm -rf /etc/postgresql
sudo rm -f /usr/bin/pg_config
sudo /usr/bin/perl -MCPAN -e 'install IPC::RUN'
sudo /usr/bin/perl -MCPAN -e 'install String::Util'
sudo /usr/bin/perl -MCPAN -e 'install Data::Str2Num'
- name: Create pgsql dir
run: mkdir -p /opt/pgsql
- name: Build postgres
run: |
export PATH="/opt/pgsql/bin:$PATH"
./configure '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' \
'--enable-coverage' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' \
'--sysconfdir=/etc' '--localstatedir=/var' '--disable-silent-rules' \
'--libdir=${prefix}/lib/x86_64-linux-gnu' \
'--libexecdir=${prefix}/lib/x86_64-linux-gnu' '--disable-maintainer-mode' \
'--disable-dependency-tracking' '--with-icu' '--with-tcl' '--with-perl' \
'--with-python' '--with-pam' '--with-openssl' '--with-libxml' '--with-libxslt' \
'PYTHON=/usr/bin/python3' '--mandir=/usr/share/postgresql/14/man' \
'--docdir=/usr/share/doc/postgresql-doc-14' \
'--sysconfdir=/etc/postgresql-common' '--datarootdir=/usr/share/' \
'--datadir=/usr/share/postgresql/14' '--bindir=/usr/lib/postgresql/14/bin' \
'--libdir=/usr/lib/x86_64-linux-gnu/' '--libexecdir=/usr/lib/postgresql/' \
'--includedir=/usr/include/postgresql/' '--with-extra-version= (Ubuntu 2:14-x.focal)' \
'--enable-nls' '--enable-thread-safety' '--enable-tap-tests' '--enable-debug' \
'--enable-dtrace' '--disable-rpath' '--with-uuid=e2fs' '--with-gnu-ld' \
'--with-pgport=5432' '--with-system-tzdata=/usr/share/zoneinfo' '--with-llvm' \
'LLVM_CONFIG=/usr/bin/llvm-config-11' 'CLANG=/usr/bin/clang-11' \
'--with-systemd' '--with-selinux' 'MKDIR_P=/bin/mkdir -p' 'PROVE=/usr/bin/prove' \
'TAR=/bin/tar' 'XSLTPROC=xsltproc --nonet' 'CFLAGS=-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer' \
'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now' '--with-gssapi' '--with-ldap' \
'build_alias=x86_64-linux-gnu' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' \
'CXXFLAGS=-g -O2 -fstack-protector-strong -Wformat -Werror=format-security'
make world
sudo make install-world
- name: Start postgresql cluster
run: |
/usr/lib/postgresql/14/bin/initdb -D /opt/pgsql/data
/usr/lib/postgresql/14/bin/pg_ctl -D /opt/pgsql/data -l logfile start
- name: Clone pg_stat_monitor repository
uses: actions/checkout@v2
with:
path: 'src/pg_stat_monitor'
- name: Build pg_stat_monitor
run: |
export PATH="/usr/lib/postgresql/14/bin:$PATH"
sudo cp /usr/lib/postgresql/14/bin/pg_config /usr/bin
make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
- name: Load pg_stat_monitor library and Restart Server
run: |
/usr/lib/postgresql/14/bin/pg_ctl -D /opt/pgsql/data -l logfile stop
echo "shared_preload_libraries = 'pg_stat_monitor'" >> /opt/pgsql/data/postgresql.conf
/usr/lib/postgresql/14/bin/pg_ctl -D /opt/pgsql/data -l logfile start
working-directory: src/pg_stat_monitor/
- name: Start pg_stat_monitor_tests & Run code coverage
run: |
make installcheck
/usr/lib/postgresql/14/bin/psql -d postgres -p 5432 -c "\list"
make coverage-html
lcov --capture --directory . --output-file coverage/lcov.info
pip install cpp-coveralls
export COVERALLS_REPO_TOKEN="${{ secrets.COVERALL_PG_STAT_MONITOR_TOKEN }}"
coveralls --verbose
working-directory: src/pg_stat_monitor/
- name: Change dir permissions on fail
if: ${{ failure() }}
run: |
sudo chmod -R ugo+rwx t
sudo chmod -R ugo+rwx tmp_check
exit 2 # regenerate error so that we can upload files in next step
working-directory: src/pg_stat_monitor/
- name: Upload logs on fail
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: Regressions diff and postgresql log
path: |
src/pg_stat_monitor/regression.diffs
src/pg_stat_monitor/regression.out
src/pg_stat_monitor/logfile
src/pg_stat_monitor/t/results/
src/pg_stat_monitor/tmp_check/log/
!src/pg_stat_monitor/tmp_check/**/archives/*
!src/pg_stat_monitor/tmp_check/**/backup/*
!src/pg_stat_monitor/tmp_check/**/pgdata/*
!src/pg_stat_monitor/tmp_check/**/archives/
!src/pg_stat_monitor/tmp_check/**/backup/
!src/pg_stat_monitor/tmp_check/**/pgdata/
if-no-files-found: warn
retention-days: 3

View File

@ -3,7 +3,7 @@ on: [push]
jobs:
build:
name: pg11-test
name: pg-11-build-test
runs-on: ubuntu-18.04
steps:
- name: Clone postgres repository
@ -111,4 +111,4 @@ jobs:
**/regression.diffs
**/regression.out
src/pg_stat_monitor/logfile
retention-days: 1
retention-days: 3

View File

@ -3,7 +3,7 @@ on: [push]
jobs:
build:
name: postgresql-11-pgdg-package
name: pg-11-pgdg-package-test
runs-on: ubuntu-18.04
steps:
- name: Clone pg_stat_monitor repository
@ -28,18 +28,14 @@ jobs:
run: |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-11
sudo apt-get update
sudo apt-get -y install postgresql-client-11
sudo apt-get update
sudo apt install postgresql-server-dev-11
sudo chown -R postgres:postgres src/
sudo apt-get -y update
sudo apt-get -y install postgresql-11 postgresql-server-dev-11
- name: Change sources owner to postgres
run: sudo chown -R postgres:postgres src
- name: Build pg_stat_monitor
run: |
export PATH="/usr/lib/postgresql/11/bin:$PATH"
sudo cp /usr/lib/postgresql/11/bin/pg_config /usr/bin
sudo make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
@ -49,6 +45,7 @@ jobs:
sudo service postgresql stop
echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/11/main/postgresql.conf
sudo service postgresql start
sudo psql -V
sudo -u postgres bash -c 'make installcheck USE_PGXS=1'
working-directory: src/pg_stat_monitor/
@ -60,4 +57,4 @@ jobs:
path: |
src/pg_stat_monitor/regression.diffs
src/pg_stat_monitor/logfile
retention-days: 1
retention-days: 3

View File

@ -0,0 +1,70 @@
name: postgresql-11-ppg-package
on: [push]
jobs:
build:
name: pg-11-ppg-package-test
runs-on: ubuntu-20.04
steps:
- name: Clone pg_stat_monitor repository
uses: actions/checkout@v2
with:
path: 'src/pg_stat_monitor'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt purge postgresql-client-common postgresql-common postgresql postgresql*
sudo apt-get install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison flex libipc-run-perl wget -y
sudo rm -rf /var/lib/postgresql/
sudo rm -rf /var/log/postgresql/
sudo rm -rf /etc/postgresql/
sudo rm -rf /usr/lib/postgresql
sudo rm -rf /usr/include/postgresql
sudo rm -rf /usr/share/postgresql
sudo rm -rf /etc/postgresql
sudo rm -f /usr/bin/pg_config
- name: Install percona-release script
run: |
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y update
sudo apt-get install -y wget gnupg2 curl lsb-release
sudo wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
- name: Install Percona Distribution Postgresql 11
run: |
sudo percona-release setup ppg-11
sudo apt-get update -y
sudo apt-get install -y percona-postgresql-11 percona-postgresql-contrib percona-postgresql-server-dev-all
- name: Change sources owner to postgres
run: sudo chown -R postgres:postgres src
- name: Build pg_stat_monitor
run: |
sudo make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
- name: Start pg_stat_monitor_tests
run: |
sudo service postgresql stop
echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/11/main/postgresql.conf
sudo service postgresql start
sudo psql -V
sudo -u postgres bash -c 'make installcheck USE_PGXS=1'
working-directory: src/pg_stat_monitor/
- name: Report on test fail
uses: actions/upload-artifact@v2
if: ${{ failure() }}
with:
name: Regressions diff and postgresql log
path: |
src/pg_stat_monitor/regression.diffs
src/pg_stat_monitor/logfile
retention-days: 3

View File

@ -3,7 +3,7 @@ on: [push]
jobs:
build:
name: postgresql-12-build
name: pg-12-build-test
runs-on: ubuntu-latest
steps:
- name: Clone postgres repository
@ -106,4 +106,4 @@ jobs:
**/regression.diffs
**/regression.out
src/pg_stat_monitor/logfile
retention-days: 1
retention-days: 3

View File

@ -3,7 +3,7 @@ on: [push]
jobs:
build:
name: postgresql-12-pgdg-package
name: pg-12-pgdg-package-test
runs-on: ubuntu-latest
steps:
- name: Clone pg_stat_monitor repository
@ -28,18 +28,15 @@ jobs:
run: |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-12
sudo apt-get update
sudo apt-get -y install postgresql-client-12
sudo apt-get update
sudo apt install postgresql-server-dev-12
sudo chown -R postgres:postgres src/
sudo apt-get -y update
sudo apt-get -y install postgresql-12 postgresql-server-dev-12
- name: Change sources owner to postgres
run: |
sudo chown -R postgres:postgres src
- name: Build pg_stat_monitor
run: |
export PATH="/usr/lib/postgresql/12/bin:$PATH"
sudo cp /usr/lib/postgresql/12/bin/pg_config /usr/bin
sudo make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
@ -49,6 +46,7 @@ jobs:
sudo service postgresql stop
echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/12/main/postgresql.conf
sudo service postgresql start
sudo psql -V
sudo -u postgres bash -c 'make installcheck USE_PGXS=1'
working-directory: src/pg_stat_monitor/
@ -60,4 +58,4 @@ jobs:
path: |
src/pg_stat_monitor/regression.diffs
src/pg_stat_monitor/logfile
retention-days: 1
retention-days: 3

View File

@ -0,0 +1,70 @@
name: postgresql-12-ppg-package
on: [push]
jobs:
build:
name: pg-12-ppg-package-test
runs-on: ubuntu-20.04
steps:
- name: Clone pg_stat_monitor repository
uses: actions/checkout@v2
with:
path: 'src/pg_stat_monitor'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt purge postgresql-client-common postgresql-common postgresql postgresql*
sudo apt-get install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison flex libipc-run-perl wget -y
sudo rm -rf /var/lib/postgresql/
sudo rm -rf /var/log/postgresql/
sudo rm -rf /etc/postgresql/
sudo rm -rf /usr/lib/postgresql
sudo rm -rf /usr/include/postgresql
sudo rm -rf /usr/share/postgresql
sudo rm -rf /etc/postgresql
sudo rm -f /usr/bin/pg_config
- name: Install percona-release script
run: |
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y update
sudo apt-get install -y wget gnupg2 curl lsb-release
sudo wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
- name: Install Percona Distribution Postgresql 12
run: |
sudo percona-release setup ppg-12
sudo apt-get update -y
sudo apt-get install -y percona-postgresql-12 percona-postgresql-contrib percona-postgresql-server-dev-all
- name: Change src owner to postgres
run: |
sudo chown -R postgres:postgres src
- name: Build pg_stat_monitor
run: |
sudo make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
- name: Start pg_stat_monitor_tests
run: |
sudo service postgresql stop
echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/12/main/postgresql.conf
sudo service postgresql start
sudo psql -V
sudo -u postgres bash -c 'make installcheck USE_PGXS=1'
working-directory: src/pg_stat_monitor/
- name: Report on test fail
uses: actions/upload-artifact@v2
if: ${{ failure() }}
with:
name: Regressions diff and postgresql log
path: |
src/pg_stat_monitor/regression.diffs
src/pg_stat_monitor/logfile
retention-days: 3

View File

@ -3,7 +3,7 @@ on: [push]
jobs:
build:
name: postgresql-13-build
name: pg-13-build-test
runs-on: ubuntu-latest
steps:
- name: Clone postgres repository
@ -134,4 +134,4 @@ jobs:
**/regression.diffs
**/regression.out
src/pg_stat_monitor/logfile
retention-days: 1
retention-days: 3

View File

@ -3,7 +3,7 @@ on: [push]
jobs:
build:
name: postgresql-13-pgdg-package
name: pg-13-pgdg-package-test
runs-on: ubuntu-latest
steps:
- name: Clone pg_stat_monitor repository
@ -30,18 +30,17 @@ jobs:
- name: Install PG Distribution Postgresql 13
run: |
sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | 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'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-13 postgresql-client-13 postgresql-contrib postgresql-server-dev-13
sudo chown -R postgres:postgres src/
sudo cpan install IPC::RUN
sudo cpan install String::Util
sudo apt update
sudo apt -y install postgresql-13 postgresql-server-dev-13
- name: Change sources owner to postgres
run: |
sudo chown -R postgres:postgres src
- name: Build pg_stat_monitor
run: |
export PATH="/usr/lib/postgresql/13/bin:$PATH"
sudo cp /usr/lib/postgresql/13/bin/pg_config /usr/bin
sudo make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
@ -51,6 +50,7 @@ jobs:
sudo service postgresql stop
echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/13/main/postgresql.conf
sudo service postgresql start
sudo psql -V
sudo -u postgres bash -c 'make installcheck USE_PGXS=1'
working-directory: src/pg_stat_monitor/
@ -80,4 +80,4 @@ jobs:
!src/pg_stat_monitor/tmp_check/**/backup/
!src/pg_stat_monitor/tmp_check/**/pgdata/
if-no-files-found: warn
retention-days: 1
retention-days: 3

View File

@ -0,0 +1,91 @@
name: postgresql-13-ppg-package
on: [push]
jobs:
build:
name: pg-13-ppg-package-test
runs-on: ubuntu-20.04
steps:
- name: Clone pg_stat_monitor repository
uses: actions/checkout@v2
with:
path: 'src/pg_stat_monitor'
- name: Delete old postgresql files
run: |
sudo apt-get update
sudo apt purge postgresql-client-common postgresql-common postgresql postgresql*
sudo rm -rf /var/lib/postgresql/
sudo rm -rf /var/log/postgresql/
sudo rm -rf /etc/postgresql/
sudo rm -rf /usr/lib/postgresql
sudo rm -rf /usr/include/postgresql
sudo rm -rf /usr/share/postgresql
sudo rm -rf /etc/postgresql
sudo rm -f /usr/bin/pg_config
sudo apt-get install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison flex libipc-run-perl wget -y
sudo /usr/bin/perl -MCPAN -e 'install IPC::RUN'
sudo /usr/bin/perl -MCPAN -e 'install String::Util'
sudo /usr/bin/perl -MCPAN -e 'install Data::Str2Num'
- name: Install percona-release script
run: |
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y update
sudo apt-get install -y wget gnupg2 curl lsb-release
sudo wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
- name: Install Percona Distribution Postgresql 13
run: |
sudo percona-release setup ppg-13
sudo apt-get update -y
sudo apt-get install -y percona-postgresql-13 percona-postgresql-contrib percona-postgresql-server-dev-all
- name: Change src owner to postgres
run: |
sudo chown -R postgres:postgres src
- name: Build pg_stat_monitor
run: |
sudo make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
- name: Start pg_stat_monitor_tests
run: |
sudo service postgresql stop
echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/13/main/postgresql.conf
sudo service postgresql start
sudo psql -V
sudo -u postgres bash -c 'make installcheck USE_PGXS=1'
working-directory: src/pg_stat_monitor/
- name: Change dir permissions on fail
if: ${{ failure() }}
run: |
sudo chmod -R ugo+rwx t
sudo chmod -R ugo+rwx tmp_check
exit 2 # regenerate error so that we can upload files in next step
working-directory: src/pg_stat_monitor/
- name: Upload logs on fail
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: Regressions diff and postgresql log
path: |
src/pg_stat_monitor/regression.diffs
src/pg_stat_monitor/regression.out
src/pg_stat_monitor/logfile
src/pg_stat_monitor/t/results/
src/pg_stat_monitor/tmp_check/log/
!src/pg_stat_monitor/tmp_check/**/archives/*
!src/pg_stat_monitor/tmp_check/**/backup/*
!src/pg_stat_monitor/tmp_check/**/pgdata/*
!src/pg_stat_monitor/tmp_check/**/archives/
!src/pg_stat_monitor/tmp_check/**/backup/
!src/pg_stat_monitor/tmp_check/**/pgdata/
if-no-files-found: warn
retention-days: 3

View File

@ -3,7 +3,7 @@ on: [push]
jobs:
build:
name: postgresql-14-build
name: pg-14-build-test
runs-on: ubuntu-latest
steps:
- name: Clone postgres repository
@ -118,4 +118,4 @@ jobs:
!src/pg_stat_monitor/tmp_check/**/backup/
!src/pg_stat_monitor/tmp_check/**/pgdata/
if-no-files-found: warn
retention-days: 1
retention-days: 3

View File

@ -0,0 +1,83 @@
name: postgresql-14-pgdg-package
on: [push]
jobs:
build:
name: pg-14-pgdg-package-test
runs-on: ubuntu-latest
steps:
- name: Clone pg_stat_monitor repository
uses: actions/checkout@v2
with:
path: 'src/pg_stat_monitor'
- name: Delete old postgresql files
run: |
sudo apt-get update
sudo apt purge postgresql-client-common postgresql-common postgresql postgresql*
sudo rm -rf /var/lib/postgresql/
sudo rm -rf /var/log/postgresql/
sudo rm -rf /etc/postgresql/
sudo rm -rf /usr/lib/postgresql
sudo rm -rf /usr/include/postgresql
sudo rm -rf /usr/share/postgresql
sudo rm -rf /etc/postgresql
sudo rm -f /usr/bin/pg_config
sudo apt-get install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison flex libipc-run-perl wget -y
sudo /usr/bin/perl -MCPAN -e 'install IPC::RUN'
sudo /usr/bin/perl -MCPAN -e 'install String::Util'
sudo /usr/bin/perl -MCPAN -e 'install Data::Str2Num'
- name: Install PG Distribution Postgresql 14
run: |
sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | 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 update
sudo apt -y install postgresql-14 postgresql-server-dev-14
- name: Change sources owner to postgres
run: |
sudo chown -R postgres:postgres src
- name: Build pg_stat_monitor
run: |
sudo make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
- name: Start pg_stat_monitor_tests
run: |
sudo service postgresql stop
echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/14/main/postgresql.conf
sudo service postgresql start
sudo psql -V
sudo -u postgres bash -c 'make installcheck USE_PGXS=1'
working-directory: src/pg_stat_monitor/
- name: Change dir permissions on fail
if: ${{ failure() }}
run: |
sudo chmod -R ugo+rwx t
sudo chmod -R ugo+rwx tmp_check
exit 2 # regenerate error so that we can upload files in next step
working-directory: src/pg_stat_monitor/
- name: Upload logs on fail
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: Regressions diff and postgresql log
path: |
src/pg_stat_monitor/regression.diffs
src/pg_stat_monitor/regression.out
src/pg_stat_monitor/logfile
src/pg_stat_monitor/t/results/
src/pg_stat_monitor/tmp_check/log/
!src/pg_stat_monitor/tmp_check/**/archives/*
!src/pg_stat_monitor/tmp_check/**/backup/*
!src/pg_stat_monitor/tmp_check/**/pgdata/*
!src/pg_stat_monitor/tmp_check/**/archives/
!src/pg_stat_monitor/tmp_check/**/backup/
!src/pg_stat_monitor/tmp_check/**/pgdata/
if-no-files-found: warn
retention-days: 3

View File

@ -0,0 +1,91 @@
name: postgresql-14-ppg-package
on: [push]
jobs:
build:
name: pg-14-ppg-package-test
runs-on: ubuntu-20.04
steps:
- name: Clone pg_stat_monitor repository
uses: actions/checkout@v2
with:
path: 'src/pg_stat_monitor'
- name: Delete old postgresql files
run: |
sudo apt-get update
sudo apt purge postgresql-client-common postgresql-common postgresql postgresql*
sudo rm -rf /var/lib/postgresql/
sudo rm -rf /var/log/postgresql/
sudo rm -rf /etc/postgresql/
sudo rm -rf /usr/lib/postgresql
sudo rm -rf /usr/include/postgresql
sudo rm -rf /usr/share/postgresql
sudo rm -rf /etc/postgresql
sudo rm -f /usr/bin/pg_config
sudo apt-get install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison flex libipc-run-perl wget -y
sudo /usr/bin/perl -MCPAN -e 'install IPC::RUN'
sudo /usr/bin/perl -MCPAN -e 'install String::Util'
sudo /usr/bin/perl -MCPAN -e 'install Data::Str2Num'
- name: Install percona-release script
run: |
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y update
sudo apt-get install -y wget gnupg2 curl lsb-release
sudo wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
- name: Install Percona Distribution Postgresql 14
run: |
sudo percona-release setup ppg-14
sudo apt-get update -y
sudo apt-get install -y percona-postgresql-14 percona-postgresql-contrib percona-postgresql-server-dev-all
- name: Change src owner to postgres
run: |
sudo chown -R postgres:postgres src
- name: Build pg_stat_monitor
run: |
sudo make USE_PGXS=1
sudo make USE_PGXS=1 install
working-directory: src/pg_stat_monitor/
- name: Start pg_stat_monitor_tests
run: |
sudo service postgresql stop
echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/14/main/postgresql.conf
sudo service postgresql start
sudo psql -V
sudo -u postgres bash -c 'make installcheck USE_PGXS=1'
working-directory: src/pg_stat_monitor/
- name: Change dir permissions on fail
if: ${{ failure() }}
run: |
sudo chmod -R ugo+rwx t
sudo chmod -R ugo+rwx tmp_check
exit 2 # regenerate error so that we can upload files in next step
working-directory: src/pg_stat_monitor/
- name: Upload logs on fail
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: Regressions diff and postgresql log
path: |
src/pg_stat_monitor/regression.diffs
src/pg_stat_monitor/regression.out
src/pg_stat_monitor/logfile
src/pg_stat_monitor/t/results/
src/pg_stat_monitor/tmp_check/log/
!src/pg_stat_monitor/tmp_check/**/archives/*
!src/pg_stat_monitor/tmp_check/**/backup/*
!src/pg_stat_monitor/tmp_check/**/pgdata/*
!src/pg_stat_monitor/tmp_check/**/archives/
!src/pg_stat_monitor/tmp_check/**/backup/
!src/pg_stat_monitor/tmp_check/**/pgdata/
if-no-files-found: warn
retention-days: 3