diff options
author | Max Moroz <dor3s1@gmail.com> | 2018-07-27 14:19:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-27 14:19:32 -0700 |
commit | 815727b0b3740736e5640d27c49042db7bbd0b2d (patch) | |
tree | dd55d29453b03f831acb0cc8ec6e3146d9b475ed /infra/base-images/base-clang | |
parent | dbe2731d93f8de04969543e45338af26a6dc3773 (diff) | |
download | oss-fuzz-815727b0b3740736e5640d27c49042db7bbd0b2d.tar.gz |
[infra] Add retry wrapper to LLVM checkout commands. (#1668)
* [infra] Add retry wrapper to LLVM checkout commands.
* Fix a typo.
* Clean up the retry wrapper as per discussion with Abhishek.
* Fix disabling / enabling exit-on-error mode, bash is hard!
* Fix a comment.
Diffstat (limited to 'infra/base-images/base-clang')
-rwxr-xr-x | infra/base-images/base-clang/checkout_build_install_llvm.sh | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/infra/base-images/base-clang/checkout_build_install_llvm.sh b/infra/base-images/base-clang/checkout_build_install_llvm.sh index 3293923a5..77374216e 100755 --- a/infra/base-images/base-clang/checkout_build_install_llvm.sh +++ b/infra/base-images/base-clang/checkout_build_install_llvm.sh @@ -19,6 +19,27 @@ LLVM_DEP_PACKAGES="build-essential make cmake ninja-build git subversion python2 apt-get install -y $LLVM_DEP_PACKAGES # Checkout +CHECKOUT_RETRIES=10 +function checkout_with_retries { + REPOSITORY=$1 + LOCAL_PATH=$2 + CHECKOUT_RETURN_CODE=1 + + # Disable exit on error since we might encounter some failures while retrying. + set +e + for i in $(seq 1 $CHECKOUT_RETRIES); do + rm -rf $LOCAL_PATH + svn co $REPOSITORY $LOCAL_PATH + CHECKOUT_RETURN_CODE=$? + if [ $CHECKOUT_RETURN_CODE -eq 0 ]; then + break + fi + done + + # Re-enable exit on error. If checkout failed, script will exit. + set -e + return $CHECKOUT_RETURN_CODE +} # Use chromium's clang revision mkdir $SRC/chromium_tools @@ -36,11 +57,11 @@ fi echo "Using LLVM revision: $LLVM_REVISION" -cd $SRC && svn co https://llvm.org/svn/llvm-project/llvm/trunk@$LLVM_REVISION llvm -cd $SRC/llvm/tools && svn co https://llvm.org/svn/llvm-project/cfe/trunk@$LLVM_REVISION clang -cd $SRC/llvm/projects && svn co https://llvm.org/svn/llvm-project/compiler-rt/trunk@$LLVM_REVISION compiler-rt -cd $SRC/llvm/projects && svn co https://llvm.org/svn/llvm-project/libcxx/trunk@$LLVM_REVISION libcxx -cd $SRC/llvm/projects && svn co https://llvm.org/svn/llvm-project/libcxxabi/trunk@$LLVM_REVISION libcxxabi +cd $SRC && checkout_with_retries https://llvm.org/svn/llvm-project/llvm/trunk@$LLVM_REVISION llvm +cd $SRC/llvm/tools && checkout_with_retries https://llvm.org/svn/llvm-project/cfe/trunk@$LLVM_REVISION clang +cd $SRC/llvm/projects && checkout_with_retries https://llvm.org/svn/llvm-project/compiler-rt/trunk@$LLVM_REVISION compiler-rt +cd $SRC/llvm/projects && checkout_with_retries https://llvm.org/svn/llvm-project/libcxx/trunk@$LLVM_REVISION libcxx +cd $SRC/llvm/projects && checkout_with_retries https://llvm.org/svn/llvm-project/libcxxabi/trunk@$LLVM_REVISION libcxxabi # Build & install mkdir -p $WORK/llvm |