Have Travis print out build logs in case of test failures

To get the after_failure line work, I had to move the inline
build script to a separate script (util/travis-script.sh)

The second script (util/travis-after-failure.sh) will output
LastTest.log for cmake based builds and all files named
test*.log for an autotools based build.

Note: this commit also comes with a delibarate test failure
to illustrate the Travis behaviour. It will be removed in the
next commit.
This commit is contained in:
Geert Janssens 2017-09-02 12:35:28 +02:00
parent 0e0e4d294e
commit 1e7c721e8d
4 changed files with 52 additions and 29 deletions

View File

@ -12,31 +12,5 @@ before_install:
- sudo apt-get build-dep -qq gnucash
- sudo apt-get install -qq swig xsltproc libdbd-sqlite3 cmake3 texinfo ninja-build
- sudo apt-get --reinstall install -qq language-pack-en language-pack-fr
script: |
# The -e here says that if any line below fails, the whole script fails
set -ev
# First, do the cmake build using the default Makefile generator
if [[ "$BUILDTYPE" == "cmake-make" ]]; then
mkdir /tmp/gnucash-build-cmake-make
cd /tmp/gnucash-build-cmake-make
cmake $TRAVIS_BUILD_DIR
make -j 4
make check
# Next, do cmake again, using the Ninja generator this time
elif [[ "$BUILDTYPE" == "cmake-ninja" ]]; then
mkdir /tmp/gnucash-build-cmake-ninja
cd /tmp/gnucash-build-cmake-ninja
cmake -G Ninja $TRAVIS_BUILD_DIR
ninja
ninja check
# Finally, do the autotools build
elif [[ "$BUILDTYPE" == "autotools" ]]; then
cd $TRAVIS_BUILD_DIR
./autogen.sh
./configure
make
make check
fi
script: ./util/travis-script.sh
after_failure: ./util/travis-after-failure.sh

View File

@ -52,7 +52,7 @@ my_ymd_t dates_ydm_vals[] = { {1999, 12, 31}, {2001, 6, 17}, {2001, 11, 23}, {0,
const char* dates_mdy[] = { "1/16/2001", "12-31-1999", "01171983", NULL };
my_ymd_t dates_mdy_vals[] = { {2001, 1, 16}, {1999, 12, 31}, {1983, 1, 17}, {0, 0, 0} };
const char* dates_dmy[] = { "16/1/2001", "31-12-1999", "17011976", NULL };
my_ymd_t dates_dmy_vals[] = { {2001, 1, 16}, {1999, 12, 31}, {1976, 1, 17}, {0, 0, 0} };
my_ymd_t dates_dmy_vals[] = { {2000, 1, 16}, {1999, 12, 31}, {1976, 1, 17}, {0, 0, 0} };
const char* dates_yxx[] = { "99/1/6", "1999-12'10", "20010306", NULL };
const char* dates_xxy[] = { "1/3/99", "12-10'1999", "03062001", NULL };

19
util/travis-after-failure.sh Executable file
View File

@ -0,0 +1,19 @@
#! /bin/bash
# Build logs are located in different places depending on the build environment used
if [[ "$BUILDTYPE" == "cmake-make" ]] || [[ "$BUILDTYPE" == "cmake-ninja" ]]; then
echo "##### LastTest.log #####"
echo "#########################"
cat /tmp/gnucash-build-${BUILDTYPE}/Testing/Temporary/LastTest.log
elif [[ "$BUILDTYPE" == "autotools" ]]; then
for logfile in $( find . -name 'test*.log' ); do
SIZE=$((${#logfile} + 12))
HRULE=$(head -c $SIZE < /dev/zero | tr '\0' '#')
echo $HRULE
echo "##### ${logfile} #####"
echo $HRULE
cat -- "$logfile"
echo -e "\n\n"
done
fi

30
util/travis-script.sh Executable file
View File

@ -0,0 +1,30 @@
#! /bin/bash -ev
# The -e above says that if any line below fails, the whole script fails
# Run tests in different build configurations depending on the
# value of the BUILDTYPE environment variable
# 1. cmake build using the default Makefile generator
if [[ "$BUILDTYPE" == "cmake-make" ]]; then
mkdir /tmp/gnucash-build-cmake-make
cd /tmp/gnucash-build-cmake-make
cmake $TRAVIS_BUILD_DIR
make -j 4
make check
# 2. cmake build using the Ninja generator
elif [[ "$BUILDTYPE" == "cmake-ninja" ]]; then
mkdir /tmp/gnucash-build-cmake-ninja
cd /tmp/gnucash-build-cmake-ninja
cmake -G Ninja $TRAVIS_BUILD_DIR
ninja
ninja check
# 3. autotools build
elif [[ "$BUILDTYPE" == "autotools" ]]; then
cd $TRAVIS_BUILD_DIR
./autogen.sh
./configure
make
make check
fi