From 23d1504de4111223dc4805c6f4176a4d9e028b79 Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Tue, 15 Aug 2017 12:00:18 -0400 Subject: Better error messages on the CI This makes it so that when a ci target fails, we don't get red herring error messages about .ok files not existing. Since this requires bash, we make a helper script that invokes bash, so as to not depend on bash in general. --- Makefile.ci | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'Makefile.ci') diff --git a/Makefile.ci b/Makefile.ci index 1b09905cc..a5b3b1491 100644 --- a/Makefile.ci +++ b/Makefile.ci @@ -24,9 +24,7 @@ CI_TARGETS=ci-all \ # Generic rule, we use make to easy travis integraton with mixed rules $(CI_TARGETS): ci-%: - rm -f ci-$*.ok - +(./dev/ci/ci-$*.sh 2>&1 && touch ci-$*.ok) | tee time-of-build.log + +./dev/ci/ci-pipe-tee.sh ./dev/ci/ci-$*.sh time-of-build.log echo 'Aggregating timing log...' && echo -en 'travis_fold:start:coq.test.timing\\r' python ./tools/make-one-time-file.py time-of-build.log echo -en 'travis_fold:end:coq.test.timing\\r' - rm ci-$*.ok # must not be -f; we're checking to see that it exists -- cgit v1.2.3 From 26b0fc20bba2d9d79e176620141697beb3f307a2 Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Tue, 15 Aug 2017 14:15:40 -0400 Subject: Move the rest of the ci target to a bash file --- Makefile.ci | 5 +---- dev/ci/ci-pipe-tee.sh | 8 -------- dev/ci/ci-wrapper.sh | 17 +++++++++++++++++ 3 files changed, 18 insertions(+), 12 deletions(-) delete mode 100755 dev/ci/ci-pipe-tee.sh create mode 100755 dev/ci/ci-wrapper.sh (limited to 'Makefile.ci') diff --git a/Makefile.ci b/Makefile.ci index a5b3b1491..fd5975f72 100644 --- a/Makefile.ci +++ b/Makefile.ci @@ -24,7 +24,4 @@ CI_TARGETS=ci-all \ # Generic rule, we use make to easy travis integraton with mixed rules $(CI_TARGETS): ci-%: - +./dev/ci/ci-pipe-tee.sh ./dev/ci/ci-$*.sh time-of-build.log - echo 'Aggregating timing log...' && echo -en 'travis_fold:start:coq.test.timing\\r' - python ./tools/make-one-time-file.py time-of-build.log - echo -en 'travis_fold:end:coq.test.timing\\r' + +./dev/ci/ci-wrapper.sh ci-$*.sh diff --git a/dev/ci/ci-pipe-tee.sh b/dev/ci/ci-pipe-tee.sh deleted file mode 100755 index 7b1ccddf2..000000000 --- a/dev/ci/ci-pipe-tee.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -# Use this script to preserve the exit code of $1 when piping it to -# `tee $2`. We have a separate script, because this only works in -# bash, which we don't require project-wide. - -"$1" 2>&1 | tee "$2" -exit ${PIPESTATUS[0]} diff --git a/dev/ci/ci-wrapper.sh b/dev/ci/ci-wrapper.sh new file mode 100755 index 000000000..63bff6778 --- /dev/null +++ b/dev/ci/ci-wrapper.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# Use this script to preserve the exit code of $CI_SCRIPT when piping +# it to `tee time-of-build.log`. We have a separate script, because +# this only works in bash, which we don't require project-wide. + +set -eo pipefail + +CI_SCRIPT="$1" +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +# assume this script is in dev/ci/, cd to the root Coq directory +cd "${DIR}/../.." + +"${DIR}/${CI_SCRIPT}" 2>&1 | tee time-of-build.log +echo 'Aggregating timing log...' && echo -en 'travis_fold:start:coq.test.timing\\r' +python ./tools/make-one-time-file.py time-of-build.log +echo -en 'travis_fold:end:coq.test.timing\\r' -- cgit v1.2.3