fate: Error out more gracefully on configure failure

If configure fails before config.fate is generated, the report file misses
some values and gets discarded by the FATE server. In these cases, print
those values as "failed" along with the failing configure command line.
This commit is contained in:
Diego Biurrun 2018-02-15 13:26:20 +01:00
parent dc40e64adb
commit e2399e0c1a

View File

@ -21,6 +21,33 @@ test -d "$samples" || die "samples location not specified"
: ${branch:=master}
src=${workdir}/src
: ${build:=${workdir}/build}
: ${inst:=${workdir}/install}
configuration='
--enable-gpl
--prefix="${inst}"
--samples="${samples}"
${ignore_tests:+--ignore-tests="$ignore_tests"}
${arch:+--arch="$arch"}
${cpu:+--cpu="$cpu"}
${toolchain:+--toolchain="$toolchain"}
${cross_prefix:+--cross-prefix="$cross_prefix"}
${as:+--as="$as"}
${cc:+--cc="$cc"}
${ld:+--ld="$ld"}
${target_os:+--target-os="$target_os"}
${sysroot:+--sysroot="$sysroot"}
${target_exec:+--target-exec="$target_exec"}
${target_path:+--target-path="$target_path"}
${target_samples:+--target-samples="$target_samples"}
${extra_cflags:+--extra-cflags="$extra_cflags"}
${extra_ldflags:+--extra-ldflags="$extra_ldflags"}
${extra_libs:+--extra-libs="$extra_libs"}
${extra_conf}
'
lock(){
lock=$1/fate.lock
(set -C; exec >$lock) 2>/dev/null || return
@ -43,27 +70,7 @@ update()(
configure()(
cd ${build} || return
${src}/configure \
--prefix="${inst}" \
--samples="${samples}" \
--enable-gpl \
${ignore_tests:+--ignore-tests="$ignore_tests"} \
${arch:+--arch=$arch} \
${cpu:+--cpu="$cpu"} \
${toolchain:+--toolchain="$toolchain"} \
${cross_prefix:+--cross-prefix="$cross_prefix"} \
${as:+--as="$as"} \
${cc:+--cc="$cc"} \
${ld:+--ld="$ld"} \
${target_os:+--target-os="$target_os"} \
${sysroot:+--sysroot="$sysroot"} \
${target_exec:+--target-exec="$target_exec"} \
${target_path:+--target-path="$target_path"} \
${target_samples:+--target-samples="$target_samples"} \
${extra_cflags:+--extra-cflags="$extra_cflags"} \
${extra_ldflags:+--extra-ldflags="$extra_ldflags"} \
${extra_libs:+--extra-libs="$extra_libs"} \
${extra_conf}
eval ${src}/configure ${configuration}
)
compile()(
@ -84,7 +91,12 @@ clean(){
report(){
date=$(date -u +%Y%m%d%H%M%S)
echo "fate:1:${date}:${slot}:${version}:$1:$2:${branch}:${comment}" >report
cat ${build}/avbuild/config.fate ${build}/tests/data/fate/*.rep >> report 2> /dev/null
if test -e ${build}/avbuild/config.fate; then
cat ${build}/avbuild/config.fate >> report 2> /dev/null
else
eval echo config:failed:failed:failed:failed:failed:${configuration} >> report 2> /dev/null
fi
cat ${build}/tests/data/fate/*.rep >> report 2> /dev/null
test -n "$fate_recv" && $tar report *.log | gzip | $fate_recv
}
@ -98,10 +110,6 @@ mkdir -p ${workdir} || die "Error creating ${workdir}"
lock ${workdir} || die "${workdir} locked"
cd ${workdir} || die "cd ${workdir} failed"
src=${workdir}/src
: ${build:=${workdir}/build}
: ${inst:=${workdir}/install}
test -d "$src" && update || checkout || die "Error fetching source"
cd ${workdir}