diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh index 2f3eb18628..2fea243276 100755 --- a/.ci/ci-configure.sh +++ b/.ci/ci-configure.sh @@ -57,7 +57,7 @@ if [ "$DISTRO" != "" ] ; then travis_fold configure "configure $OPTS" docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \ --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \ - --env LD="ld.gold" $(cat $HOME/cid) sh -c "./configure $OPTS || cat config.log" + --env LD="ld.gold" $(cat $HOME/cid) sh -c ".ci/configure.sh $OPTS" travis_endfold configure else OSX_COPTS="--disable-cxx-bindings --with-tests=regular --disable-dependency-tracking -C" @@ -78,6 +78,6 @@ else autoreconf -iv travis_endfold autoreconf travis_fold configure "configure $OSX_COPTS" - ./configure $OSX_COPTS || cat config.log + .ci/configure.sh $OSX_COPTS travis_endfold configure fi diff --git a/.ci/configure.sh b/.ci/configure.sh new file mode 100755 index 0000000000..fc2b231081 --- /dev/null +++ b/.ci/configure.sh @@ -0,0 +1,12 @@ +#!/bin/bash + + +set -o pipefail +export TEST_VAR=1 +if ! ./configure $@ | tee -a configlog ; then + if grep -q 'configure: error: changes in the environment can compromise the build' configlog ; then + echo "clearing config.cache and retrying..." + rm -f configlog config.cache + ./configure $@ + fi +fi diff --git a/.travis.yml b/.travis.yml index 4594f39011..1990eb7c2a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -84,6 +84,11 @@ before_script: fi - .ci/ci-ccache-stats.sh + - | + if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + cp $HOME/cachedir/config.cache . || true + fi + script: - .ci/ci-configure.sh "$CI_BUILD_TYPE"