From ae4f6ece41f387c8750be99823b692c027eb3a0b Mon Sep 17 00:00:00 2001 From: Steven Robertson Date: Sun, 25 Oct 2020 12:52:14 -0700 Subject: [PATCH] add workaround for TravisCI 4MB log limit job termination --- .ci/travis.sh | 35 +++++++++++++++++++++++++++++++++++ .travis.yml | 4 +++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100755 .ci/travis.sh diff --git a/.ci/travis.sh b/.ci/travis.sh new file mode 100755 index 00000000..8bab7287 --- /dev/null +++ b/.ci/travis.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# workaround from https://stackoverflow.com/a/26082445 to handle Travis 4MB log limit +set -e + +export PING_SLEEP=30s +export WORKDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +export BUILD_OUTPUT=$WORKDIR/build.out + +touch $BUILD_OUTPUT + +dump_output() { + echo Tailing the last 1000 lines of output: + tail -1000 $BUILD_OUTPUT +} +error_handler() { + echo ERROR: An error was encountered with the build. + dump_output + kill $PING_LOOP_PID + exit 1 +} +# If an error occurs, run our error handler to output a tail of the build +trap 'error_handler' ERR + +# Set up a repeating loop to send some output to Travis. + +bash -c "while true; do echo \$(date) - building ...; sleep $PING_SLEEP; done" & +PING_LOOP_PID=$! + +.ci/${MODE}_tests.py >> $BUILD_OUTPUT 2>&1 + +# The build finished without returning an error so dump a tail of the output +dump_output + +# nicely terminate the ping output loop +kill $PING_LOOP_PID diff --git a/.travis.yml b/.travis.yml index a985039f..98306c8c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,8 +23,10 @@ install: script: - .ci/spawn_reverse_shell.py -- .ci/${MODE}_tests.py +- MODE=${MODE} .ci/travis.sh +# Travis has a 4MB log limit (https://github.com/travis-ci/travis-ci/issues/1382), but verbose Mitogen logs run larger than that +# in order to keep verbosity to debug a build failure, will run with this workaround: https://stackoverflow.com/a/26082445 # To avoid matrix explosion, just test against oldest->newest and # newest->oldest in various configuartions.