f4609b896f
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because there is some breakage in the git build related to the netrc credentials helper which someone has taken care of in nixpkgs. The stable channel is not used for anything other than git, so this should be fine. Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
98 lines
2.7 KiB
Bash
Executable file
98 lines
2.7 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Print output of failing tests
|
|
#
|
|
|
|
. ${0%/*}/lib.sh
|
|
|
|
# Tracing executed commands would produce too much noise in the loop below.
|
|
set +x
|
|
|
|
cd t/
|
|
|
|
if ! ls test-results/*.exit >/dev/null 2>/dev/null
|
|
then
|
|
echo "Build job failed before the tests could have been run"
|
|
exit
|
|
fi
|
|
|
|
case "$jobname" in
|
|
osx-clang|osx-gcc)
|
|
# base64 in OSX doesn't wrap its output at 76 columns by
|
|
# default, but prints a single, very long line.
|
|
base64_opts="-b 76"
|
|
;;
|
|
esac
|
|
|
|
combined_trash_size=0
|
|
for TEST_EXIT in test-results/*.exit
|
|
do
|
|
if [ "$(cat "$TEST_EXIT")" != "0" ]
|
|
then
|
|
TEST_OUT="${TEST_EXIT%exit}out"
|
|
echo "------------------------------------------------------------------------"
|
|
echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)"
|
|
echo "------------------------------------------------------------------------"
|
|
cat "${TEST_OUT}"
|
|
|
|
test_name="${TEST_EXIT%.exit}"
|
|
test_name="${test_name##*/}"
|
|
trash_dir="trash directory.$test_name"
|
|
case "$CI_TYPE" in
|
|
travis)
|
|
;;
|
|
azure-pipelines)
|
|
mkdir -p failed-test-artifacts
|
|
mv "$trash_dir" failed-test-artifacts
|
|
continue
|
|
;;
|
|
github-actions)
|
|
mkdir -p failed-test-artifacts
|
|
echo "::set-env name=FAILED_TEST_ARTIFACTS::t/failed-test-artifacts"
|
|
cp "${TEST_EXIT%.exit}.out" failed-test-artifacts/
|
|
tar czf failed-test-artifacts/"$test_name".trash.tar.gz "$trash_dir"
|
|
continue
|
|
;;
|
|
*)
|
|
echo "Unhandled CI type: $CI_TYPE" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
trash_tgz_b64="trash.$test_name.base64"
|
|
if [ -d "$trash_dir" ]
|
|
then
|
|
tar czp "$trash_dir" |base64 $base64_opts >"$trash_tgz_b64"
|
|
|
|
trash_size=$(wc -c <"$trash_tgz_b64")
|
|
if [ $trash_size -gt 1048576 ]
|
|
then
|
|
# larger than 1MB
|
|
echo "$(tput setaf 1)Didn't include the trash directory of '$test_name' in the trace log, it's too big$(tput sgr0)"
|
|
continue
|
|
fi
|
|
|
|
new_combined_trash_size=$(($combined_trash_size + $trash_size))
|
|
if [ $new_combined_trash_size -gt 1048576 ]
|
|
then
|
|
echo "$(tput setaf 1)Didn't include the trash directory of '$test_name' in the trace log, there is plenty of trash in there already.$(tput sgr0)"
|
|
continue
|
|
fi
|
|
combined_trash_size=$new_combined_trash_size
|
|
|
|
# DO NOT modify these two 'echo'-ed strings below
|
|
# without updating 'ci/util/extract-trash-dirs.sh'
|
|
# as well.
|
|
echo "$(tput setaf 1)Start of trash directory of '$test_name':$(tput sgr0)"
|
|
cat "$trash_tgz_b64"
|
|
echo "$(tput setaf 1)End of trash directory of '$test_name'$(tput sgr0)"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ $combined_trash_size -gt 0 ]
|
|
then
|
|
echo "------------------------------------------------------------------------"
|
|
echo "Trash directories embedded in this log can be extracted by running:"
|
|
echo
|
|
echo " curl https://api.travis-ci.org/v3/job/$TRAVIS_JOB_ID/log.txt |./ci/util/extract-trash-dirs.sh"
|
|
fi
|