Skip to content

Commit b640094

Browse files
author
bors-servo
authored
Auto merge of #897 - emilio:ci-cache, r=fitzgen
ci: Cache LLVM builds. Fixes #896
2 parents 1ac2212 + e179367 commit b640094

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

.travis.yml

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ matrix:
3030
cache:
3131
directories:
3232
- $HOME/.cargo
33+
- $HOME/.llvm-builds
3334

3435
before_install: . ./ci/before_install.sh
3536

ci/before_install.sh

+14-8
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,31 @@ if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
66
rvm get head || true
77
fi
88

9-
function llvm_download() {
9+
function llvm_download_if_needed() {
1010
export LLVM_VERSION_TRIPLE="${LLVM_VERSION}"
1111
export LLVM=clang+llvm-${LLVM_VERSION_TRIPLE}-x86_64-$1
1212

13-
wget http://llvm.org/releases/${LLVM_VERSION_TRIPLE}/${LLVM}.tar.xz
14-
mkdir llvm
15-
tar -xf ${LLVM}.tar.xz -C llvm --strip-components=1
13+
local llvm_build_dir="$HOME/.llvm-builds/${LLVM}"
1614

17-
export LLVM_CONFIG_PATH=`pwd`/llvm/bin/llvm-config
15+
if [ -d "${llvm_build_dir}" ]; then
16+
echo "Using cached LLVM build for ${LLVM} in ${llvm_build_dir}";
17+
else
18+
wget http://llvm.org/releases/${LLVM_VERSION_TRIPLE}/${LLVM}.tar.xz
19+
mkdir -p "${llvm_build_dir}"
20+
tar -xf ${LLVM}.tar.xz -C "${llvm_build_dir}" --strip-components=1
21+
fi
22+
23+
export LLVM_CONFIG_PATH="${llvm_build_dir}/bin/llvm-config"
1824
if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
19-
cp llvm/lib/libclang.dylib /usr/local/lib/libclang.dylib
25+
cp "${llvm_build_dir}/lib/libclang.dylib" /usr/local/lib/libclang.dylib
2026
fi
2127
}
2228

2329

2430
if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
25-
llvm_download linux-gnu-ubuntu-14.04
31+
llvm_download_if_needed linux-gnu-ubuntu-14.04
2632
else
27-
llvm_download apple-darwin
33+
llvm_download_if_needed apple-darwin
2834
fi
2935

3036
popd

0 commit comments

Comments
 (0)