Skip to content

Workflow file for this run

name: CI
on:
push:
branches:
- main
- actions
pull_request:
branches:
- main
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update system
run: sudo apt-get update -y
- name: Install dependencies
run: sudo apt-get install -y --no-install-recommends git gcc cmake make wget build-essential libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt1-dev libssl-dev libxml2-utils xsltproc ccache pkg-config check
- name: Run all steps
run: |
set -e
install_postgresql() {
version=${1:-13}
git_repo="https://github.com/postgres/postgres.git"
cd /tmp
git clone --branch "REL_${version}_STABLE" --single-branch --depth 1 "$git_repo"
cd /tmp/postgres
./configure --prefix=/usr/local/pgsql
make
sudo make install
sudo -u postgres /usr/local/pgsql/bin/initdb -D /tmp/pgsql-${version}
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /tmp/pgsql-${version} -l /tmp/logfile start
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
}
config_postgresql(){
version=${1:-13}
sudo -u postgres sed -i 's/^#\s*password_encryption\s*=\s*\(md5\|scram-sha-256\)/password_encryption = scram-sha-256/' /tmp/pgsql-${version}/postgresql.conf
sudo -u postgres sed -i '/^host/d' /tmp/pgsql-${version}/pg_hba.conf
sudo -u postgres bash -c "cat <<EOF >> /tmp/pgsql-${version}/pg_hba.conf
host postgres repl 127.0.0.1/32 scram-sha-256

Check failure on line 46 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yml

Invalid workflow file

You have an error in your yaml syntax on line 46
host postgres repl ::1/128 scram-sha-256
host replication repl 127.0.0.1/32 scram-sha-256
host replication repl ::1/128 scram-sha-256
EOF"
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /tmp/pgsql-${version} -l /tmp/logfile restart
sudo -u postgres /usr/local/pgsql/bin/psql -U postgres -c "CREATE ROLE repl WITH LOGIN REPLICATION PASSWORD 'secretpassword';"
}
install_pgmoneta_ext() {
cd /home/runner/work/pgmoneta_ext/pgmoneta_ext/
mkdir build
cd /home/runner/work/pgmoneta_ext/pgmoneta_ext/build/
cmake ..
make
sudo make install
}
create_pgmoneta_ext(){
sudo -u postgres /usr/local/pgsql/bin/psql -U postgres -c "DROP EXTENSION IF EXISTS pgmoneta_ext;"
sudo -u postgres /usr/local/pgsql/bin/psql -U postgres -c "CREATE EXTENSION pgmoneta_ext;"
}
test_pgmoneta_ext(){
cd /home/runner/work/pgmoneta_ext/pgmoneta_ext/test
mkdir build
cd /home/runner/work/pgmoneta_ext/pgmoneta_ext/test/build
cmake ..
make
export PGPASSWORD='secretpassword'
./pgmoneta_ext_test
unset PGPASSWORD
sudo -u postgres /usr/local/pgsql/bin/psql -U postgres -c "DROP ROLE repl;"
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /tmp/pgsql-${version} -l /tmp/logfile stop
}
cleanup(){
sudo rm -rf /usr/local/pgsql
sudo rm -rf /usr/local/bin/psql
sudo rm -rf /usr/local/bin/pg_ctl
sudo rm -rf /usr/local/lib/postgresql
sudo rm -rf /etc/postgresql
sudo rm -rf /tmp/pgsql-*
sudo rm -rf /tmp/pgsql
sudo rm -rf /tmp/logfile
sudo rm -rf /tmp/postgres
sudo hash -r
}
VERSION=13
while [ $VERSION -lt 17 ]; do
cleanup
install_postgresql "$VERSION"
config_postgresql "$VERSION"
install_pgmoneta_ext
create_pgmoneta_ext
test_pgmoneta_ext
VERSION=$((VERSION+1))
done