Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add minimal CI #90

Merged
merged 1 commit into from
Jun 29, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Run hypopg tests

on:
push:
branches:
- REL1_STABLE
pull_request:
branches:
- REL1_STABLE

env:
DATADIR: /dev/shm/data
LOGFILE: /dev/shm/data/logfile

jobs:
hypopg_tests:
name: hypopg tests
runs-on: ${{ matrix.os }}

strategy:
matrix:
postgres_major_version: [
"10",
"11",
"12",
"13",
"14",
"15",
"16"
]
os: ["ubuntu-22.04"]

steps:
- uses: actions/checkout@v4

- name: Set up prerequisites and environment
run: |
echo "************ CLEAN IMAGE ***********"
sudo apt remove -y '^postgres.*' '^libpq.*'
echo ""

echo "********* REPOSITORY SET UP ********"
sudo apt-get install -y wget gnupg
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 -y -qq --fix-missing
echo ""

echo "*********** ENVIRONMENT ************"
export PG_MAJOR_VERSION=${{ matrix.postgres_major_version }}
echo "PG_MAJOR_VERSION=$PG_MAJOR_VERSION" >> $GITHUB_ENV
echo "MAKEFLAGS=$MAKEFLAGS -j $(grep -c ^processor /proc/cpuinfo)" >> $GITHUB_ENV
echo ""

echo "******** INSTALL POSTGRES **********"
sudo apt-get install -y \
postgresql-$PG_MAJOR_VERSION \
postgresql-server-dev-$PG_MAJOR_VERSION \
postgresql-contrib-$PG_MAJOR_VERSION
echo ""

echo "******* INSTALL DEPENDENCIES *******"
sudo apt-get install -y \
gcc \
make \
build-essential \
pkg-config
echo ""

echo "********** READJUST PATH ***********"
export PATH=$(pg_config --bindir):$PATH
echo "PATH=$PATH" >> $GITHUB_ENV
cat $GITHUB_ENV
echo ""

- name: Start a postgres ${{ matrix.postgres_major_version }} server
run: |
sudo chmod a+rwx /var/run/postgresql/
pg_ctl -D $DATADIR initdb
pg_ctl -D $DATADIR -l $LOGFILE start || cat $LOGFILE
psql -c 'select 1 as ok' postgres

- name: Build and install hypopg for postgres ${{ matrix.postgres_major_version }}
run: |
make
sudo make install

- name: Run hypopg tests for postgres ${{ matrix.postgres_major_version }}
run: make installcheck || ( errcode=$?; cat regression.diffs && exit $errcode )

- name: Stop the running postgres ${{ matrix.postgres_major_version }} server
run: pg_ctl -D $DATADIR stop