Skip to content

plr CI -

plr CI - #156

Workflow file for this run

name: plr CI
run-name: plr CI - ${{ github.event.head_commit.message }}
on: [push, pull_request, workflow_dispatch]
jobs:
master:
runs-on: ubuntu-latest
steps:
- name: Echo site details
run: echo building master
- name: Checkout code
uses: actions/checkout@v3
- name: checkout postgres
run: |
sudo apt-get update -qq
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt-get install -qq r-base-dev acl bison flex libssl-dev
sudo R --version
sudo /etc/init.d/postgresql stop
sudo apt-get remove --purge postgresql\*
sudo rm -rf /etc/postgresql /var/lib/postgresql
git clone --depth=1 https://github.com/postgres/postgres.git
pushd postgres
./configure
make -j4
sudo make install
export PATH=/usr/local/pgsql/bin:$PATH
initdb -D data
pg_ctl -D data -l logfile start
popd
- name: Script
run: |
export USE_PGXS=1
export PATH=/usr/local/pgsql/bin:$PATH
SHLIB_LINK=-lgcov PG_CPPFLAGS="-fprofile-arcs -ftest-coverage -O0" make
# USE_PGXS=1 is not required in Travis, and it is required in Github Actions
sudo USE_PGXS=1 PATH=/usr/local/pgsql/bin:$PATH make install
psql --version
R --version
make installcheck || (cat regression.diffs && false)
env:
USE_PGXS: 1
build:
runs-on: ubuntu-latest
env:
PG: ${{ matrix.pg }}
strategy:
matrix:
include:
# SEEN SEP 2023
# Ubuntu 22.04 ubuntu-latest
# https://github.com/actions/runner-images
# jammy (22.04, LTS)
# https://wiki.postgresql.org/wiki/Apt
# https://apt.postgresql.org/pub/repos/apt/dists/
# 16/ - 14-Sep-2023 12:35
# https://apt.postgresql.org/pub/repos/apt/dists/jammy-pgdg/
- pg: 16
- pg: 15
- pg: 14
- pg: 13
- pg: 12
- pg: 11
- pg: 10
steps:
- name: Echo site details
run: echo PG $PG
- name: Checkout code
uses: actions/checkout@v3
- name: Before Script
run: |
echo Building plr with PostgreSQL $PG
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 -qq
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt-get install -qq r-base-dev acl
sudo /etc/init.d/postgresql stop
sudo apt-get remove --purge postgresql\*
sudo rm -rf /etc/postgresql /var/lib/postgresql
sudo apt-get install postgresql-$PG
sudo apt-get install postgresql-server-dev-$PG
echo 'local all postgres trust' | sudo tee /etc/postgresql/$PG/main/pg_hba.conf > /dev/null
# Builds under "runner"
# Github Actions require elevated priviledges
sudo setfacl -Rm u:postgres:rwx,d:u:runner:rwx /home/runner
sudo pg_ctlcluster $PG main reload
- name: Script
run: |
sudo pg_lsclusters
export USE_PGXS=1
SHLIB_LINK=-lgcov PG_CPPFLAGS="-fprofile-arcs -ftest-coverage -O0" make
# USE_PGXS=1 is not required in Travis, and it is required in Github Actions
sudo USE_PGXS=1 make install
/usr/lib/postgresql/$PG/bin/pg_config
psql --version
R --version
make installcheck PGUSER=postgres || (cat regression.diffs && false)
- name: After Success
# success() returns true, when none of the previous steps have failed or been canceled.
if: ${{ success() }}
# Uploads code coverage to codecov.io
run: bash <(curl -s https://codecov.io/bash)