Regression Linux i386 #689
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: 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 | |