Hi, On 2022-09-28 16:07:13 -0400, Tom Lane wrote: > I agree that it'd be good if CI did some 32-bit testing so it could have > caught (5) and (6), but that's being worked on.
I wasn't aware of anybody doing so, thus here's a patch for that. I already added the necessary packages to the image. I didn't install llvm for 32bit because that'd have a) bloated the image unduly b) they can't currently be installed in parallel afaics. Attached is the patch adding it to CI. To avoid paying the task startup overhead twice, it seemed a tad better to build and test 32bit as part of an existing task. We could instead give each job fewer CPUs and run them concurrently. It might be worth changing one of the builds to use -Dwal_blocksize=4 and a few other flags, to increase our coverage. Greetings, Andres Freund
>From 384322a92c845378728057fb38b143ca58185831 Mon Sep 17 00:00:00 2001 From: Andres Freund <and...@anarazel.de> Date: Thu, 29 Sep 2022 16:09:09 -0700 Subject: [PATCH v1 1/2] ci: Add 32bit build and test Discussion: https://postgr.es/m/4033181.1664395...@sss.pgh.pa.us --- .cirrus.yml | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 7b5cb021027..7a1887ab444 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -40,9 +40,9 @@ on_failure_ac: &on_failure_ac on_failure_meson: &on_failure_meson testrun_artifacts: paths: - - "build/testrun/**/*.log" - - "build/testrun/**/*.diffs" - - "build/testrun/**/regress_log_*" + - "build*/testrun/**/*.log" + - "build*/testrun/**/*.diffs" + - "build*/testrun/**/regress_log_*" type: text/plain # In theory it'd be nice to upload the junit files meson generates, so that @@ -51,7 +51,7 @@ on_failure_meson: &on_failure_meson # don't end up useful. We could probably improve on that with a some custom # conversion script, but ... meson_log_artifacts: - path: "build/meson-logs/*.txt" + path: "build*/meson-logs/*.txt" type: text/plain @@ -229,6 +229,9 @@ task: - name: Linux - Debian Bullseye - Meson + env: + CCACHE_MAXSIZE: "400M" # tests two different builds + configure_script: | su postgres <<-EOF meson setup \ @@ -239,7 +242,23 @@ task: build EOF + configure_32_script: | + su postgres <<-EOF + export CC='ccache gcc -m32' + meson setup \ + --buildtype=debug \ + -Dcassert=true \ + ${LINUX_MESON_FEATURES} \ + -Dllvm=disabled \ + --pkg-config-path /usr/lib/i386-linux-gnu/pkgconfig/ \ + -DPERL=perl5.32-i386-linux-gnu \ + -DPG_TEST_EXTRA="$PG_TEST_EXTRA" \ + build-32 + EOF + build_script: su postgres -c 'ninja -C build -j${BUILD_JOBS}' + build_32_script: su postgres -c 'ninja -C build-32 -j${BUILD_JOBS}' + upload_caches: ccache test_world_script: | @@ -247,6 +266,14 @@ task: ulimit -c unlimited meson test $MTEST_ARGS --num-processes ${TEST_JOBS} EOF + # so that we don't upload 64bit logs if 32bit fails + rm -rf build/ + + test_world_32_script: | + su postgres <<-EOF + ulimit -c unlimited + meson test $MTEST_ARGS -C build-32 --num-processes ${TEST_JOBS} + EOF on_failure: <<: *on_failure_meson -- 2.37.3.542.gdd3f6c4cae