aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Dénès2017-09-07 13:03:19 +0200
committerMaxime Dénès2017-09-07 13:03:19 +0200
commit695657b3edbd1bf9a1cadbb2c58b9c479b852111 (patch)
treeae6dadc183f79bd6f1656e747084efc0ae69d971
parent7034b1188bba2c41de87ce980f5ecfab9d2220f3 (diff)
parent7ac81ccfad04b1f0d3bad8f3b596e579b5f37224 (diff)
Merge PR #968: Better error messages on the CI
-rw-r--r--Makefile.ci7
-rwxr-xr-xdev/ci/ci-wrapper.sh24
2 files changed, 25 insertions, 6 deletions
diff --git a/Makefile.ci b/Makefile.ci
index 744b7c6550..b5a26d96e8 100644
--- a/Makefile.ci
+++ b/Makefile.ci
@@ -24,9 +24,4 @@ CI_TARGETS=ci-all \
# Generic rule, we use make to ease travis integration with mixed rules
$(CI_TARGETS): ci-%:
- rm -f ci-$*.ok
- +(./dev/ci/ci-$*.sh 2>&1 && touch ci-$*.ok) | 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'
- rm ci-$*.ok # must not be -f; we're checking to see that it exists
+ +./dev/ci/ci-wrapper.sh ci-$*.sh
diff --git a/dev/ci/ci-wrapper.sh b/dev/ci/ci-wrapper.sh
new file mode 100755
index 0000000000..96acc5a11c
--- /dev/null
+++ b/dev/ci/ci-wrapper.sh
@@ -0,0 +1,24 @@
+#!/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
+
+function travis_fold {
+ if [ -n "${TRAVIS}" ];
+ then
+ echo "travis_fold:$1:$2"
+ fi
+}
+
+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
+travis_fold 'start' 'coq.test.timing' && echo 'Aggregating timing log...'
+python ./tools/make-one-time-file.py time-of-build.log
+travis_fold 'end' 'coq.test.timing'