summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2018-08-08 09:38:24 -0400
committerMike Blumenkrantz <zmike@samsung.com>2018-08-08 09:38:25 -0400
commit1edf1295e8326ad315d24decea297d9f8ce22419 (patch)
tree61d44c2f737772d0aad66c11e6168d5d67f0bd57
parente382bac1a01a152d32a0f95df7a2ad6b84ae80d4 (diff)
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.sh4
-rwxr-xr-x.ci/configure.sh12
-rw-r--r--.travis.yml5
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
57 travis_fold configure "configure $OPTS" 57 travis_fold configure "configure $OPTS"
58 docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \ 58 docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
59 --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \ 59 --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
60 --env LD="ld.gold" $(cat $HOME/cid) sh -c "./configure $OPTS || cat config.log" 60 --env LD="ld.gold" $(cat $HOME/cid) sh -c ".ci/configure.sh $OPTS"
61 travis_endfold configure 61 travis_endfold configure
62else 62else
63 OSX_COPTS="--disable-cxx-bindings --with-tests=regular --disable-dependency-tracking -C" 63 OSX_COPTS="--disable-cxx-bindings --with-tests=regular --disable-dependency-tracking -C"
@@ -78,6 +78,6 @@ else
78 autoreconf -iv 78 autoreconf -iv
79 travis_endfold autoreconf 79 travis_endfold autoreconf
80 travis_fold configure "configure $OSX_COPTS" 80 travis_fold configure "configure $OSX_COPTS"
81 ./configure $OSX_COPTS || cat config.log 81 .ci/configure.sh $OSX_COPTS
82 travis_endfold configure 82 travis_endfold configure
83fi 83fi
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 @@
1#!/bin/bash
2
3
4set -o pipefail
5export TEST_VAR=1
6if ! ./configure $@ | tee -a configlog ; then
7 if grep -q 'configure: error: changes in the environment can compromise the build' configlog ; then
8 echo "clearing config.cache and retrying..."
9 rm -f configlog config.cache
10 ./configure $@
11 fi
12fi
diff --git a/.travis.yml b/.travis.yml
index 4594f39011..1990eb7c2a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -84,6 +84,11 @@ before_script:
84 fi 84 fi
85 85
86 - .ci/ci-ccache-stats.sh 86 - .ci/ci-ccache-stats.sh
87 - |
88 if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
89 cp $HOME/cachedir/config.cache . || true
90 fi
91
87 92
88script: 93script:
89 - .ci/ci-configure.sh "$CI_BUILD_TYPE" 94 - .ci/ci-configure.sh "$CI_BUILD_TYPE"