summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-08-09 10:53:55 -0500
committerGitHub <noreply@github.com>2017-08-09 10:53:55 -0500
commitb6400942670694782d87ec0e2393463646e44eb9 (patch)
treeae9bde1563205f8cab5209c80df1a189190c6b62
parent1ac2212dae80b1b5611d88dae3ae0fc06f409d1e (diff)
parente179367f7a4aa98d2322d6e611d9e1b593036c2c (diff)
Auto merge of #897 - emilio:ci-cache, r=fitzgen
ci: Cache LLVM builds. Fixes #896
-rw-r--r--.travis.yml1
-rw-r--r--ci/before_install.sh22
2 files changed, 15 insertions, 8 deletions
diff --git a/.travis.yml b/.travis.yml
index b0a2a75f..639832dd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -30,6 +30,7 @@ matrix:
cache:
directories:
- $HOME/.cargo
+ - $HOME/.llvm-builds
before_install: . ./ci/before_install.sh
diff --git a/ci/before_install.sh b/ci/before_install.sh
index 719c4efe..0a2535ea 100644
--- a/ci/before_install.sh
+++ b/ci/before_install.sh
@@ -6,25 +6,31 @@ if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
rvm get head || true
fi
-function llvm_download() {
+function llvm_download_if_needed() {
export LLVM_VERSION_TRIPLE="${LLVM_VERSION}"
export LLVM=clang+llvm-${LLVM_VERSION_TRIPLE}-x86_64-$1
- wget http://llvm.org/releases/${LLVM_VERSION_TRIPLE}/${LLVM}.tar.xz
- mkdir llvm
- tar -xf ${LLVM}.tar.xz -C llvm --strip-components=1
+ local llvm_build_dir="$HOME/.llvm-builds/${LLVM}"
- export LLVM_CONFIG_PATH=`pwd`/llvm/bin/llvm-config
+ if [ -d "${llvm_build_dir}" ]; then
+ echo "Using cached LLVM build for ${LLVM} in ${llvm_build_dir}";
+ else
+ wget http://llvm.org/releases/${LLVM_VERSION_TRIPLE}/${LLVM}.tar.xz
+ mkdir -p "${llvm_build_dir}"
+ tar -xf ${LLVM}.tar.xz -C "${llvm_build_dir}" --strip-components=1
+ fi
+
+ export LLVM_CONFIG_PATH="${llvm_build_dir}/bin/llvm-config"
if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
- cp llvm/lib/libclang.dylib /usr/local/lib/libclang.dylib
+ cp "${llvm_build_dir}/lib/libclang.dylib" /usr/local/lib/libclang.dylib
fi
}
if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
- llvm_download linux-gnu-ubuntu-14.04
+ llvm_download_if_needed linux-gnu-ubuntu-14.04
else
- llvm_download apple-darwin
+ llvm_download_if_needed apple-darwin
fi
popd