pg_tle CI #547
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: pg_tle CI | |
on: | |
schedule: | |
# Runs every day at 5am. | |
- cron: '0 5 * * *' | |
push: | |
paths-ignore: | |
- 'docs/**' | |
pull_request: | |
paths-ignore: | |
- 'docs/**' | |
workflow_dispatch: | |
jobs: | |
test: | |
defaults: | |
run: | |
shell: sh | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
version: [master, REL_17_STABLE, REL_16_STABLE, REL_15_STABLE, REL_14_STABLE, REL_13_STABLE, REL_12_STABLE, REL_11_STABLE] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 120 | |
steps: | |
- name: Checkout pg_tle | |
uses: actions/checkout@v4 | |
with: | |
path: pg_tle | |
- name: Checkout Postgres | |
run: | | |
sudo apt-get -y -q update | |
sudo apt-get -y -q install libperl-dev libipc-run-perl | |
git clone --branch ${{ matrix.version }} https://github.com/postgres/postgres.git | |
- name: Build Postgres | |
run: | | |
cd postgres | |
sh configure --prefix=$PWD/inst/ --enable-debug --enable-cassert --enable-tap-tests --with-openssl --with-perl CFLAGS="-ggdb3 -O0" | |
make -j4 install | |
# Install extensions | |
make -C contrib install | |
- if: ${{ matrix.version == 'master' }} | |
name: Check pg_tle code indentation (master only) | |
run: | | |
cd postgres | |
make -C src/tools/pg_bsd_indent/ -j4 install | |
src/tools/pgindent/pgindent --indent=$GITHUB_WORKSPACE/postgres/src/tools/pg_bsd_indent/pg_bsd_indent --diff $GITHUB_WORKSPACE/pg_tle > pgindent.diffs | |
test -s pgindent.diffs && cat pgindent.diffs && exit 1 || exit 0 | |
- name: Build pg_tle | |
run: | | |
cd pg_tle | |
export PATH=$GITHUB_WORKSPACE/postgres/inst/bin:"$PATH" | |
make PROFILE="-Wall -Wmissing-prototypes -Werror=maybe-uninitialized -Werror" -j4 all install | |
- name: Run pg_tle tests | |
run: | | |
export PATH=$GITHUB_WORKSPACE/postgres/inst/bin:"$PATH" | |
postgres/inst/bin/initdb -D postgres/inst/bin/data | |
echo "shared_preload_libraries = 'pg_tle'" >> postgres/inst/bin/data/postgresql.conf | |
postgres/inst/bin/pg_ctl -D postgres/inst/bin/data -l postgres/inst/bin/logfile start | |
cd pg_tle | |
PERL5LIB="postgres/src/test/perl:${PERL5LIB}" make installcheck | |
- name: Show pg_tle core tests diff | |
if: ${{ failure() }} | |
run: | | |
cat pg_tle/regression.diffs | |
- name: Upload test artifacts | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-artifact-${{ matrix.os }}-${{ matrix.version }} | |
path: | | |
postgres/pgindent.diffs | |
pg_tle/regression.diffs | |
pg_tle/tmp_check/log | |
retention-days: 1 |