discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1edf1295e8326ad315d24decea297d9f8ce22419

commit 1edf1295e8326ad315d24decea297d9f8ce22419
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Aug 8 09:38:24 2018 -0400

    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
---
 .ci/ci-configure.sh |  4 ++--
 .ci/configure.sh    | 12 ++++++++++++
 .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"

-- 


Reply via email to