aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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 744b7c655..b5a26d96e 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 000000000..96acc5a11
--- /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'