1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-19 17:02:53 +03:00

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 <tristan@partin.io> (earlier version)
Discussion: https://postgr.es/m/DDZP25P4VZ48.3LWMZBGA1K9RH%40partin.io
Backpatch-through: 15
This commit is contained in:
Thomas Munro
2025-11-06 13:24:30 +13:00
parent 6d8acb7777
commit ae2381025a

View File

@@ -104,6 +104,7 @@ task:
configure_script: | configure_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
meson setup \ meson setup \
--buildtype=debug \ --buildtype=debug \
--auto-features=disabled \ --auto-features=disabled \
@@ -112,6 +113,7 @@ task:
EOF EOF
build_script: | build_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET} ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET}
EOF EOF
upload_caches: ccache upload_caches: ccache
@@ -121,6 +123,7 @@ task:
# tap test that exercises both a frontend binary and the backend. # tap test that exercises both a frontend binary and the backend.
test_minimal_script: | test_minimal_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ulimit -c unlimited ulimit -c unlimited
meson test $MTEST_ARGS --suite setup meson test $MTEST_ARGS --suite setup
meson test $MTEST_ARGS --num-processes ${TEST_JOBS} \ meson test $MTEST_ARGS --num-processes ${TEST_JOBS} \
@@ -195,6 +198,7 @@ task:
# already takes longer than other platforms except for windows. # already takes longer than other platforms except for windows.
configure_script: | configure_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
meson setup \ meson setup \
--buildtype=debug \ --buildtype=debug \
-Dcassert=true -Dinjection_points=true \ -Dcassert=true -Dinjection_points=true \
@@ -207,6 +211,7 @@ task:
test_world_script: | test_world_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ulimit -c unlimited ulimit -c unlimited
meson test $MTEST_ARGS --num-processes ${TEST_JOBS} meson test $MTEST_ARGS --num-processes ${TEST_JOBS}
EOF EOF
@@ -231,6 +236,7 @@ task:
# during upload, as it doesn't expect artifacts to change size # during upload, as it doesn't expect artifacts to change size
stop_running_script: | stop_running_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop || true build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop || true
EOF EOF
<<: *on_failure_meson <<: *on_failure_meson
@@ -316,6 +322,7 @@ task:
# And other uuid options are not available on NetBSD. # And other uuid options are not available on NetBSD.
configure_script: | configure_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
meson setup \ meson setup \
--buildtype=debugoptimized \ --buildtype=debugoptimized \
--pkg-config-path ${PKGCONFIG_PATH} \ --pkg-config-path ${PKGCONFIG_PATH} \
@@ -330,6 +337,7 @@ task:
test_world_script: | test_world_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ulimit -c unlimited ulimit -c unlimited
# Otherwise tests will fail on OpenBSD, due to inability to start enough # Otherwise tests will fail on OpenBSD, due to inability to start enough
# processes. # processes.
@@ -468,6 +476,7 @@ task:
# that. # that.
configure_script: | configure_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
./configure \ ./configure \
--enable-cassert --enable-injection-points --enable-debug \ --enable-cassert --enable-injection-points --enable-debug \
--enable-tap-tests --enable-nls \ --enable-tap-tests --enable-nls \
@@ -484,6 +493,7 @@ task:
test_world_script: | test_world_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ulimit -c unlimited # default is 0 ulimit -c unlimited # default is 0
make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
EOF EOF
@@ -506,6 +516,7 @@ task:
configure_script: | configure_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
meson setup \ meson setup \
--buildtype=debug \ --buildtype=debug \
-Dcassert=true -Dinjection_points=true \ -Dcassert=true -Dinjection_points=true \
@@ -517,6 +528,7 @@ task:
# locally. # locally.
configure_32_script: | configure_32_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
export CC='ccache gcc -m32' export CC='ccache gcc -m32'
meson setup \ meson setup \
--buildtype=debug \ --buildtype=debug \
@@ -531,12 +543,14 @@ task:
build_script: | build_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET} ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET}
ninja -C build -t missingdeps ninja -C build -t missingdeps
EOF EOF
build_32_script: | build_32_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ninja -C build-32 -j${BUILD_JOBS} ${MBUILD_TARGET} ninja -C build-32 -j${BUILD_JOBS} ${MBUILD_TARGET}
ninja -C build -t missingdeps ninja -C build -t missingdeps
EOF EOF
@@ -545,6 +559,7 @@ task:
test_world_script: | test_world_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ulimit -c unlimited ulimit -c unlimited
meson test $MTEST_ARGS --num-processes ${TEST_JOBS} meson test $MTEST_ARGS --num-processes ${TEST_JOBS}
EOF EOF
@@ -557,6 +572,7 @@ task:
# from C, prevent that with PYTHONCOERCECLOCALE. # from C, prevent that with PYTHONCOERCECLOCALE.
test_world_32_script: | test_world_32_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
ulimit -c unlimited ulimit -c unlimited
PYTHONCOERCECLOCALE=0 LANG=C meson test $MTEST_ARGS -C build-32 --num-processes ${TEST_JOBS} PYTHONCOERCECLOCALE=0 LANG=C meson test $MTEST_ARGS -C build-32 --num-processes ${TEST_JOBS}
EOF EOF