Skip to content

Regression Linux i386 #689

Regression Linux i386

Regression Linux i386 #689

name: Regression Linux i386
on:
schedule:
# run daily 20:00 on main branch
- cron: '0 20 * * *'
push:
branches:
- prerelease_test
pull_request:
jobs:
regress_linux_32bit:
name: PG${{ matrix.pg }} ${{ matrix.build_type }} linux-i386
runs-on: ubuntu-latest
container:
image: i386/debian:buster-slim
options: --privileged --ulimit core=-1
env:
DEBIAN_FRONTEND: noninteractive
strategy:
fail-fast: false
matrix:
pg: ["12.10","13.6","14.2"]
build_type: [ Debug ]
include:
- pg: "12.10"
ignores: append-12 debug_notice transparent_decompression-12 transparent_decompress_chunk-12 plan_skip_scan-12 pg_dump dist_gapfill_pushdown-12
pg_major: 12
- pg: "13.6"
ignores: append-13 debug_notice transparent_decompression-13 transparent_decompress_chunk-13 pg_dump dist_gapfill_pushdown-13
pg_major: 13
- pg: "14.2"
ignores: append-14 debug_notice transparent_decompression-14 transparent_decompress_chunk-14 pg_dump dist_gapfill_pushdown-14
pg_major: 14
steps:
- name: Install build dependencies
run: |
echo '/tmp/core.%h.%e.%t' > /proc/sys/kernel/core_pattern
apt-get update
apt-get install -y gnupg postgresql-common
yes | /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
apt-get install -y gcc make cmake libssl-dev libkrb5-dev libipc-run-perl libtest-most-perl sudo gdb git wget
apt-get install -y postgresql-${{ matrix.pg_major }} postgresql-server-dev-${{ matrix.pg_major }}
- name: Build pg_isolation_regress
run: |
wget -q -O postgresql.tar.bz2 https://ftp.postgresql.org/pub/source/v${{ matrix.pg }}/postgresql-${{ matrix.pg }}.tar.bz2
mkdir -p ~/postgresql
tar --extract --file postgresql.tar.bz2 --directory ~/postgresql --strip-components 1
cd ~/postgresql
./configure --prefix=/usr/lib/postgresql/${{ matrix.pg_major }} --enable-debug --enable-cassert --with-openssl --without-readline --without-zlib
make -C src/test/isolation
chown -R postgres:postgres ~/postgresql
- name: Checkout TimescaleDB
uses: actions/checkout@v1
- name: Build TimescaleDB
run: |
./bootstrap -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" -DPG_SOURCE_DIR=~/postgresql -DREQUIRE_ALL_TESTS=ON
make -C build install
chown -R postgres:postgres .
- name: make installcheck
id: installcheck
shell: bash
run: |
set -o pipefail
export LANG=C.UTF-8
sudo -u postgres make -k -C build installcheck IGNORES="${{ matrix.ignores }}" SKIPS="chunk_adaptive" | tee installcheck.log
- name: Show regression diffs
if: always()
id: collectlogs
shell: bash
run: |
find . -name regression.diffs -exec cat {} + > regression.log
find . -name postmaster.log -exec cat {} + > postgres.log
grep -e 'FAILED' -e 'failed (ignored)' installcheck.log || true
if [[ -s regression.log ]]; then echo "::set-output name=regression_diff::true"; fi
cat regression.log
- name: Coredumps
if: always()
id: coredumps
shell: bash
run: |
if compgen -G "/tmp/core*" > /dev/null; then
apt-get install postgresql-${{ matrix.pg_major }}-dbgsym >/dev/null
for file in /tmp/core*
do
gdb /usr/lib/postgresql/${{ matrix.pg_major }}/bin/postgres -c $file <<<'bt full' | tee -a stacktraces.log
done
echo "::set-output name=coredumps::true"
exit 1
fi
- name: Save regression diffs
if: always() && steps.collectlogs.outputs.regression_diff == 'true'
uses: actions/upload-artifact@v1
with:
name: Regression diff linux-i386 PG${{ matrix.pg }}
path: regression.log
- name: Save stacktraces
if: always() && steps.coredumps.outputs.coredumps == 'true'
uses: actions/upload-artifact@v1
with:
name: Stacktraces linux-i386 PG${{ matrix.pg }}
path: stacktraces.log
- name: Save postmaster.log
if: always()
uses: actions/upload-artifact@v1
with:
name: PostgreSQL log linux-i386 PG${{ matrix.pg }}
path: postgres.log
- name: Save TAP test logs
if: always()
uses: actions/upload-artifact@v3
with:
name: TAP test logs ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
path: |
build/test/tmp_check/log
build/tsl/test/tmp_check/log