From: Thomas Munro Date: Thu, 6 Nov 2025 00:24:30 +0000 (+1300) Subject: ci: Add missing "set -e" to scripts run by su. X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=cf638b46aff2ccb8d4811e3b5d8a2c2410638190;p=postgresql.git ci: Add missing "set -e" to scripts run by su. If any shell command fails, the whole script should fail. To avoid future omissions, add this even for single-command scripts that use su with heredoc syntax, as they might be extended or copied-and-pasted. Extracted from a larger patch that wanted to use #error during compilation, leading to the diagnosis of this problem. Reviewed-by: Tristan Partin (earlier version) Discussion: https://postgr.es/m/DDZP25P4VZ48.3LWMZBGA1K9RH%40partin.io Backpatch-through: 15 --- diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index 05e016db586..ceca6abbacd 100644 --- a/.cirrus.tasks.yml +++ b/.cirrus.tasks.yml @@ -129,6 +129,7 @@ task: configure_script: | su postgres <<-EOF + set -e meson setup \ --buildtype=debug \ --auto-features=disabled \ @@ -137,6 +138,7 @@ task: EOF build_script: | su postgres <<-EOF + set -e ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET} EOF upload_caches: ccache @@ -146,6 +148,7 @@ task: # tap test that exercises both a frontend binary and the backend. test_minimal_script: | su postgres <<-EOF + set -e ulimit -c unlimited meson test $MTEST_ARGS --suite setup meson test $MTEST_ARGS --num-processes ${TEST_JOBS} \ @@ -229,6 +232,7 @@ task: # already takes longer than other platforms except for windows. configure_script: | su postgres <<-EOF + set -e meson setup \ ${MESON_COMMON_PG_CONFIG_ARGS} \ --buildtype=debug \ @@ -241,6 +245,7 @@ task: test_world_script: | su postgres <<-EOF + set -e ulimit -c unlimited meson test $MTEST_ARGS --num-processes ${TEST_JOBS} EOF @@ -265,6 +270,7 @@ task: # during upload, as it doesn't expect artifacts to change size stop_running_script: | su postgres <<-EOF + set -e build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop || true EOF <<: *on_failure_meson @@ -361,6 +367,7 @@ task: # And other uuid options are not available on NetBSD. configure_script: | su postgres <<-EOF + set -e meson setup \ ${MESON_COMMON_PG_CONFIG_ARGS} \ --buildtype=debugoptimized \ @@ -374,6 +381,7 @@ task: test_world_script: | su postgres <<-EOF + set -e ulimit -c unlimited # Otherwise tests will fail on OpenBSD, due to inability to start enough # processes. @@ -509,6 +517,7 @@ task: # that. configure_script: | su postgres <<-EOF + set -e ./configure \ --enable-cassert --enable-injection-points --enable-debug \ --enable-tap-tests --enable-nls \ @@ -525,6 +534,7 @@ task: test_world_script: | su postgres <<-EOF + set -e ulimit -c unlimited # default is 0 make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} EOF @@ -548,6 +558,7 @@ task: configure_script: | su postgres <<-EOF + set -e meson setup \ ${MESON_COMMON_PG_CONFIG_ARGS} \ --buildtype=debug \ @@ -559,6 +570,7 @@ task: # locally. configure_32_script: | su postgres <<-EOF + set -e export CC='ccache gcc -m32' meson setup \ ${MESON_COMMON_PG_CONFIG_ARGS} \ @@ -571,12 +583,14 @@ task: build_script: | su postgres <<-EOF + set -e ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET} ninja -C build -t missingdeps EOF build_32_script: | su postgres <<-EOF + set -e ninja -C build-32 -j${BUILD_JOBS} ${MBUILD_TARGET} ninja -C build -t missingdeps EOF @@ -585,6 +599,7 @@ task: test_world_script: | su postgres <<-EOF + set -e ulimit -c unlimited meson test $MTEST_ARGS --num-processes ${TEST_JOBS} EOF @@ -597,6 +612,7 @@ task: # from C, prevent that with PYTHONCOERCECLOCALE. test_world_32_script: | su postgres <<-EOF + set -e ulimit -c unlimited PYTHONCOERCECLOCALE=0 LANG=C meson test $MTEST_ARGS -C build-32 --num-processes ${TEST_JOBS} EOF