From c06be53b0389a2c5d4d8cad89e53dbfe184b4298 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 13 Jul 2018 18:29:25 -0400 Subject: [PATCH] ci: add folding for travis logs make the build a bit nicer to read the build output is still insanely verbose, so this isn't super useful as the 'pretty' view still takes so long to load that it's almost always better to just read the raw text log Differential Revision: https://phab.enlightenment.org/D6616 --- .ci/ci-configure.sh | 15 ++++++++++++++- .ci/ci-make-benchmark.sh | 5 +++-- .ci/ci-make-checkbuild.sh | 5 +++-- .ci/ci-make-distcheck.sh | 5 +++-- .ci/ci-make-examples.sh | 5 +++-- .ci/ci-make-install.sh | 5 +++-- .ci/ci-make.sh | 5 +++-- .ci/travis.sh | 24 ++++++++++++++++++++++++ 8 files changed, 56 insertions(+), 13 deletions(-) create mode 100755 .ci/travis.sh diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh index 74f4848a2f..01a60ea749 100755 --- a/.ci/ci-configure.sh +++ b/.ci/ci-configure.sh @@ -2,6 +2,8 @@ set -e +. .ci/travis.sh + CI_BUILD_TYPE="$1" DEFAULT_LINUX_COPTS="--prefix=/usr/ --with-tests=regular --disable-cxx-bindings -C" @@ -47,9 +49,16 @@ if [ "$DISTRO" != "" ] ; then OPTS="$OPTS $RELEASE_READY_LINUX_COPTS" fi docker exec $(cat $HOME/cid) sh -c 'rm -f ~/.ccache/ccache.conf' + travis_fold autoreconf autoreconf docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \ --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \ - $(cat $HOME/cid) sh -c "autoreconf -iv && ./configure $OPTS" + $(cat $HOME/cid) sh -c "autoreconf -iv" + travis_endfold autoreconf + travis_fold configure "configure $OPTS" + docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \ + --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \ + $(cat $HOME/cid) sh -c "./configure $OPTS" + travis_endfold configure else OSX_COPTS="--disable-cxx-bindings --with-tests=regular -C" @@ -65,6 +74,10 @@ else # Normal build test of all targets rm -f ~/.ccache/ccache.conf + travis_fold autoreconf autoreconf autoreconf -iv + travis_endfold autoreconf + travis_fold configure "configure $OSX_COPTS" ./configure $OSX_COPTS + travis_endfold configure fi diff --git a/.ci/ci-make-benchmark.sh b/.ci/ci-make-benchmark.sh index bd63977724..9005f482a9 100755 --- a/.ci/ci-make-benchmark.sh +++ b/.ci/ci-make-benchmark.sh @@ -1,14 +1,15 @@ #!/bin/sh set -e - +. .ci/travis.sh if [ "$1" = "release-ready" ] ; then exit 0 fi - +travis_fold benchmark "make benchmark" if [ "$DISTRO" != "" ] ; then docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make benchmark else export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH" make benchmark fi +travis_endfold benchmark diff --git a/.ci/ci-make-checkbuild.sh b/.ci/ci-make-checkbuild.sh index 2cb852dba6..aa19844b79 100755 --- a/.ci/ci-make-checkbuild.sh +++ b/.ci/ci-make-checkbuild.sh @@ -1,14 +1,15 @@ #!/bin/sh set -e - +. .ci/travis.sh if [ "$1" = "release-ready" ] ; then exit 0 fi - +travis_fold check-build "make check-build" if [ "$DISTRO" != "" ] ; then docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make check-build else export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH" make check-build fi +travis_endfold check-build diff --git a/.ci/ci-make-distcheck.sh b/.ci/ci-make-distcheck.sh index a00de9911c..79342749ca 100755 --- a/.ci/ci-make-distcheck.sh +++ b/.ci/ci-make-distcheck.sh @@ -1,11 +1,11 @@ #!/bin/sh set -e - +. .ci/travis.sh if [ "$1" != "release-ready" ] ; then exit 0 fi - +travis_fold distcheck "make distcheck" if [ "$DISTRO" != "" ] ; then docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \ --env CXX="ccache g++" \ @@ -15,3 +15,4 @@ else export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH" make fi +travis_endfold distcheck diff --git a/.ci/ci-make-examples.sh b/.ci/ci-make-examples.sh index 4ab0f70b7b..7b0a25c12f 100755 --- a/.ci/ci-make-examples.sh +++ b/.ci/ci-make-examples.sh @@ -1,14 +1,15 @@ #!/bin/sh set -e - +. .ci/travis.sh if [ "$1" = "release-ready" ] ; then exit 0 fi - +travis_fold examples "make examples" if [ "$DISTRO" != "" ] ; then docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make examples else export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH" make examples fi +travis_endfold examples diff --git a/.ci/ci-make-install.sh b/.ci/ci-make-install.sh index 9856179080..0b2970533f 100755 --- a/.ci/ci-make-install.sh +++ b/.ci/ci-make-install.sh @@ -1,14 +1,15 @@ #!/bin/sh set -e - +. .ci/travis.sh if [ "$1" = "release-ready" ] ; then exit 0 fi - +travis_fold install "make install" if [ "$DISTRO" != "" ] ; then docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make install else export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH" make install fi +travis_endfold install diff --git a/.ci/ci-make.sh b/.ci/ci-make.sh index 988fb1c109..bee5a17500 100755 --- a/.ci/ci-make.sh +++ b/.ci/ci-make.sh @@ -1,14 +1,15 @@ #!/bin/sh set -e - +. .ci/travis.sh if [ "$1" = "release-ready" ] ; then exit 0 fi - +travis_fold make make if [ "$DISTRO" != "" ] ; then docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make else export PATH="$(brew --prefix gettext)/bin:$PATH" make fi +travis_endfold make diff --git a/.ci/travis.sh b/.ci/travis.sh new file mode 100755 index 0000000000..6ae67e2e82 --- /dev/null +++ b/.ci/travis.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# https://github.com/travis-ci/travis-rubies/blob/9f7962a881c55d32da7c76baefc58b89e3941d91/build.sh#L38-L44 + +travis_fold() { + echo -e "travis_fold:start:$1\033[33;1m$2\033[0m" +} +travis_endfold() { + echo -e "\ntravis_fold:end:$1\r" +} + +travis_time_start() { + travis_timer_id=$(printf %08x $(( RANDOM * RANDOM ))) + travis_start_time=$(travis_nanoseconds) + echo -en "travis_time:start:$travis_timer_id\r${ANSI_CLEAR}" +} + +travis_time_finish() { + local result=$? + travis_end_time=$(travis_nanoseconds) + local duration=$(($travis_end_time-$travis_start_time)) + echo -en "\ntravis_time:end:$travis_timer_id:start=$travis_start_time,finish=$travis_end_time,duration=$duration\r${ANSI_CLEAR}" + return $result +}