diff --git a/contrib/teamcity/setup-debian-buster.sh b/contrib/teamcity/setup-debian-buster.sh --- a/contrib/teamcity/setup-debian-buster.sh +++ b/contrib/teamcity/setup-debian-buster.sh @@ -68,10 +68,10 @@ apt-get update DEBIAN_FRONTEND=noninteractive apt-get install -y $(join_by ' ' "${PACKAGES[@]}") -TEAMCITY_DIR=$(dirname "$0") +SCRIPT_DIR=$(dirname "$0") # Add the AdoptOpenJDK repo -apt-key add "${TEAMCITY_DIR}"/adoptopenjdk.pub +apt-key add "${SCRIPT_DIR}"/adoptopenjdk.pub add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ apt-get update DEBIAN_FRONTEND=noninteractive apt-get install -y adoptopenjdk-8-hotspot @@ -80,8 +80,9 @@ echo 'JAVA_HOME="/usr/lib/jvm/default-java"' >> /etc/environment # Install llvm-8 -apt-key add "${TEAMCITY_DIR}"/llvm.pub -add-apt-repository "deb http://apt.llvm.org/buster/ llvm-toolchain-buster-8 main" +apt-key add "${SCRIPT_DIR}"/llvm.pub +APT_REPO="deb http://apt.llvm.org/buster/ llvm-toolchain-buster-8 main" +add-apt-repository "${APT_REPO}" apt-get update LLVM_PACKAGES=( @@ -90,7 +91,17 @@ clang-tidy-8 clang-tools-8 ) -DEBIAN_FRONTEND=noninteractive apt-get install -y $(join_by ' ' "${LLVM_PACKAGES[@]}") +DEBIAN_FRONTEND=noninteractive apt-get install -y $(join_by ' ' "${LLVM_PACKAGES[@]}") || { + # Cleanup any LLVM packages that may have installed successfully + apt-get autoremove $(join_by ' ' "${LLVM_PACKAGES[@]}") + add-apt-repository --remove "${APT_REPO}" + + # Fallback on buster-backports if packages from LLVM are unavailable + add-apt-repository "deb http://deb.debian.org/debian buster-backports main" + apt-get update + DEBIAN_FRONTEND=noninteractive apt-get -t buster-backports install -y $(join_by ' ' "${LLVM_PACKAGES[@]}") +} + update-alternatives --install /usr/bin/clang clang "$(command -v clang-8)" 100 update-alternatives --install /usr/bin/clang++ clang++ "$(command -v clang++-8)" 100