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
REL_16_STABLE
Thomas Munro 1 month ago
parent c775bf048a
commit 4da1f66fae
  1. 12
      .cirrus.tasks.yml

@ -94,6 +94,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 \
@ -102,6 +103,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
@ -111,6 +113,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 --num-processes ${TEST_JOBS} \ meson test $MTEST_ARGS --num-processes ${TEST_JOBS} \
tmp_install cube/regress pg_ctl/001_start_stop tmp_install cube/regress pg_ctl/001_start_stop
@ -172,6 +175,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 -Duuid=bsd -Dtcl_version=tcl86 -Ddtrace=auto \ -Dcassert=true -Duuid=bsd -Dtcl_version=tcl86 -Ddtrace=auto \
@ -184,6 +188,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
@ -208,6 +213,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
@ -328,6 +334,7 @@ task:
# that. # that.
configure_script: | configure_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
./configure \ ./configure \
--enable-cassert --enable-debug --enable-tap-tests \ --enable-cassert --enable-debug --enable-tap-tests \
--enable-nls \ --enable-nls \
@ -342,6 +349,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
@ -357,6 +365,7 @@ task:
configure_script: | configure_script: |
su postgres <<-EOF su postgres <<-EOF
set -e
meson setup \ meson setup \
--buildtype=debug \ --buildtype=debug \
-Dcassert=true \ -Dcassert=true \
@ -369,6 +378,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 \
@ -388,6 +398,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
@ -400,6 +411,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

Loading…
Cancel
Save