mirror of https://github.com/citusdata/citus.git
Handle errors better in generate_citus_tarballs.sh
Normally our bash scripts fail when a command fails because we make sure they contain `set -e`. In `generate_citus_tarballs.sh` this didn't work well though due the actual commands being inside of functions and sometimes being chained using `&&`. This could make us miss certain errors, and be very confused when it then failed in a different way later. This happened when debugging the flaky test job in #7218.pull/7237/head
parent
58fef24142
commit
8cce21d882
|
@ -3,44 +3,45 @@
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
|
|
||||||
pg_version=$1
|
pg_version=$1
|
||||||
citus_old_version=$2
|
citus_version=$2
|
||||||
|
|
||||||
base="$(pwd)"
|
base="$(pwd)"
|
||||||
|
|
||||||
install_citus_and_tar() {
|
# If tarball already exsists we're good
|
||||||
# do everything in a subdirectory to avoid clutter in current directory
|
if [ -f "${base}/install-pg${pg_version}-citus${citus_version}.tar" ]; then
|
||||||
mkdir -p "${builddir}" && cd "${builddir}"
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
"${citus_dir}/configure" --without-libcurl
|
basedir="${base}/${citus_version}"
|
||||||
|
|
||||||
installdir="${builddir}/install"
|
rm -rf "${basedir}"
|
||||||
make "-j$(nproc)" && mkdir -p "${installdir}" && make DESTDIR="${installdir}" install
|
mkdir -p "${basedir}"
|
||||||
|
cd "${basedir}"
|
||||||
|
citus_dir=${basedir}/citus_$citus_version
|
||||||
|
git clone --branch "$citus_version" https://github.com/citusdata/citus.git --depth 1 citus_"$citus_version"
|
||||||
|
builddir="${basedir}/build"
|
||||||
|
|
||||||
cd "${installdir}" && find . -type f -print >"${builddir}/files.lst"
|
# do everything in a subdirectory to avoid clutter in current directory
|
||||||
|
mkdir -p "${builddir}"
|
||||||
|
cd "${builddir}"
|
||||||
|
|
||||||
tar cvf "${basedir}/install-pg${pg_version}-citus${citus_version}.tar" $(cat "${builddir}"/files.lst)
|
"${citus_dir}/configure" --without-libcurl
|
||||||
mv "${basedir}/install-pg${pg_version}-citus${citus_version}.tar" "${base}/install-pg${pg_version}-citus${citus_version}.tar"
|
|
||||||
|
|
||||||
cd "${builddir}" && rm -rf install files.lst && make clean
|
installdir="${builddir}/install"
|
||||||
}
|
make "-j$(nproc)"
|
||||||
|
mkdir -p "${installdir}"
|
||||||
|
make DESTDIR="${installdir}" install
|
||||||
|
|
||||||
build_ext() {
|
cd "${installdir}"
|
||||||
citus_version="$1"
|
|
||||||
# If tarball already exsists we're good
|
|
||||||
if [ -f "${base}/install-pg${pg_version}-citus${citus_version}.tar" ]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
basedir="${base}/${citus_version}"
|
find . -type f -print >"${builddir}/files.lst"
|
||||||
|
|
||||||
rm -rf "${basedir}"
|
cd "${builddir}"
|
||||||
mkdir -p "${basedir}"
|
|
||||||
cd "${basedir}"
|
|
||||||
citus_dir=${basedir}/citus_$citus_version
|
|
||||||
git clone --branch "$citus_version" https://github.com/citusdata/citus.git --depth 1 citus_"$citus_version"
|
|
||||||
builddir="${basedir}/build"
|
|
||||||
|
|
||||||
install_citus_and_tar
|
tar cvf "${basedir}/install-pg${pg_version}-citus${citus_version}.tar" $(cat "${builddir}"/files.lst)
|
||||||
}
|
mv "${basedir}/install-pg${pg_version}-citus${citus_version}.tar" "${base}/install-pg${pg_version}-citus${citus_version}.tar"
|
||||||
|
|
||||||
|
cd "${builddir}"
|
||||||
|
rm -rf install files.lst
|
||||||
|
make clean
|
||||||
|
|
||||||
build_ext "${citus_old_version}"
|
|
||||||
|
|
Loading…
Reference in New Issue