From 28e3ab8c72cd1947e361025a62e4a8be82eb8918 Mon Sep 17 00:00:00 2001 From: Julien Rouhaud Date: Sat, 29 Jun 2024 10:38:18 +0800 Subject: [PATCH] Add minimal CI It's run on the REL1_STABLE branch and PRs against it. --- .github/workflows/tests.yml | 92 +++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..060ebd8 --- /dev/null +++ b/.github/workflows/tests.yml @@ -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