diff options
author | Mike Blumenkrantz <zmike@samsung.com> | 2018-08-08 09:38:24 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@samsung.com> | 2018-08-08 09:38:25 -0400 |
commit | 1edf1295e8326ad315d24decea297d9f8ce22419 (patch) | |
tree | 61d44c2f737772d0aad66c11e6168d5d67f0bd57 | |
parent | e382bac1a01a152d32a0f95df7a2ad6b84ae80d4 (diff) | |
download | efl-1edf1295e8326ad315d24decea297d9f8ce22419.tar.gz |
ci: automatically clear config.cache if it cannot be used
Summary:
if env vars change between runs then the cache is invalidated, causing
configure to print a very specific error
by running a separate script to catch this error, the build can detect
and clear the cache when necessary to avoid having to manually disable
the cache when changing build settings
Depends on D6697
Reviewers: stefan_schmidt, bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6732
-rwxr-xr-x | .ci/ci-configure.sh | 4 | ||||
-rwxr-xr-x | .ci/configure.sh | 12 | ||||
-rw-r--r-- | .travis.yml | 5 |
3 files changed, 19 insertions, 2 deletions
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" |