aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark de Wever <koraq@xs4all.nl>2022-08-06 16:19:30 +0200
committerMark de Wever <koraq@xs4all.nl>2022-08-17 17:48:06 +0200
commit4761a74fd8ebb51e2cc70c5e54ca0f18f4525a99 (patch)
treec159dd2dc6bb210cdbd4f225fd02badb97fc3bda
parent74b5dad5e944db21e56e6d81eb14f11891a741ab (diff)
downloadllvm-4761a74fd8ebb51e2cc70c5e54ca0f18f4525a99.zip
llvm-4761a74fd8ebb51e2cc70c5e54ca0f18f4525a99.tar.gz
llvm-4761a74fd8ebb51e2cc70c5e54ca0f18f4525a99.tar.bz2
[libc++][CI] Updates and improves the Docker image.
Since we branched LLVM install Clang 16 and remove Clang 12. Currently our Docker installs 4 versions of Clang so our CI can use the same image for both the main and the release branch. This wasn't done for the other Clang tools so they always use the same version for testing the main and the release branch. Instead install 2 versions for the tools. However it seems the default for Clang and its tools were the latest released version instead of the ToT. To lessen the risk of breaking the release CI, version 14 is installed hard-coded as a temporary solution. Updating the main branch to use the Clang 16 compiler will be done in a separate patch. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D131324
-rw-r--r--libcxx/utils/ci/Dockerfile40
1 files changed, 20 insertions, 20 deletions
diff --git a/libcxx/utils/ci/Dockerfile b/libcxx/utils/ci/Dockerfile
index a460ed1..eaa5863 100644
--- a/libcxx/utils/ci/Dockerfile
+++ b/libcxx/utils/ci/Dockerfile
@@ -55,34 +55,34 @@ RUN locale-gen
# LLVM 15, we still need to have Clang 12 in this Docker image because the LLVM
# 14 release branch CI uses it. The tip-of-trunk CI will never use Clang 12,
# though.
-ENV LLVM_LATEST_VERSION=14
+ENV LLVM_HEAD_VERSION=16
RUN apt-get update && apt-get install -y lsb-release wget software-properties-common
RUN wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh
-# TODO Use the apt.llvm.org version after branching to LLVM 15
-RUN apt-get update && apt-get install -y clang-$(($LLVM_LATEST_VERSION - 2))
-#RUN bash /tmp/llvm.sh $(($LLVM_LATEST_VERSION - 2)) # for CI transitions
-RUN bash /tmp/llvm.sh $(($LLVM_LATEST_VERSION - 1)) # previous release
-RUN bash /tmp/llvm.sh $LLVM_LATEST_VERSION # latest release
-RUN bash /tmp/llvm.sh $(($LLVM_LATEST_VERSION + 1)) # current ToT
+RUN bash /tmp/llvm.sh $(($LLVM_HEAD_VERSION - 3)) # for CI transitions
+RUN bash /tmp/llvm.sh $(($LLVM_HEAD_VERSION - 2)) # previous release
+RUN bash /tmp/llvm.sh $(($LLVM_HEAD_VERSION - 1)) # latest release
+RUN bash /tmp/llvm.sh $LLVM_HEAD_VERSION # current ToT
# Make the latest version of Clang the "default" compiler on the system
-# TODO: In the future, all jobs should be using an explicitly-versioned version of Clang instead,
-# and we can get rid of this entirely.
-RUN ln -fs /usr/bin/clang++-$LLVM_LATEST_VERSION /usr/bin/c++ && [ -e $(readlink /usr/bin/c++) ]
-RUN ln -fs /usr/bin/clang-$LLVM_LATEST_VERSION /usr/bin/cc && [ -e $(readlink /usr/bin/cc) ]
-
-# Install clang-format
-RUN apt-get update && apt-get install -y clang-format-$LLVM_LATEST_VERSION
-RUN ln -s /usr/bin/clang-format-$LLVM_LATEST_VERSION /usr/bin/clang-format && [ -e $(readlink /usr/bin/clang-format) ]
-RUN ln -s /usr/bin/git-clang-format-$LLVM_LATEST_VERSION /usr/bin/git-clang-format && [ -e $(readlink /usr/bin/git-clang-format) ]
+# TODO: After branching for LLVM 16, all jobs will be using an
+# explicitly-versioned version of Clang instead, so we can get rid of
+# these symlinks.
+RUN ln -fs /usr/bin/clang++-14 /usr/bin/c++ && [ -e $(readlink /usr/bin/c++) ]
+RUN ln -fs /usr/bin/clang-14 /usr/bin/cc && [ -e $(readlink /usr/bin/cc) ]
+
+# Install clang-format; always use the lastest stable branch.
+# TODO LLVM 16 remove hard-coded version 14 and the symlinks
+RUN apt-get update && apt-get install -y clang-format-$(($LLVM_HEAD_VERSION - 2)) clang-format-$(($LLVM_HEAD_VERSION - 1))
+RUN ln -s /usr/bin/clang-format-14 /usr/bin/clang-format && [ -e $(readlink /usr/bin/clang-format) ]
+RUN ln -s /usr/bin/git-clang-format-14 /usr/bin/git-clang-format && [ -e $(readlink /usr/bin/git-clang-format) ]
# Install clang-tidy
-RUN apt-get update && apt-get install -y clang-tidy-$LLVM_LATEST_VERSION
-RUN ln -s /usr/bin/clang-tidy-$LLVM_LATEST_VERSION /usr/bin/clang-tidy && [ -e $(readlink /usr/bin/clang-tidy) ]
+# TODO LLVM 16 remove hard-coded version 14 and the symlink
+RUN apt-get update && apt-get install -y clang-tidy-$(($LLVM_HEAD_VERSION - 1)) clang-tidy-$LLVM_HEAD_VERSION clang-tidy-14
+RUN ln -s /usr/bin/clang-tidy-14 /usr/bin/clang-tidy && [ -e $(readlink /usr/bin/clang-tidy) ]
# Install clang-tools
-RUN apt-get update && apt-get install -y clang-tools-$LLVM_LATEST_VERSION
-RUN ln -s /usr/bin/clang-query-$LLVM_LATEST_VERSION /usr/bin/clang-query && [ -e $(readlink /usr/bin/clang-query) ]
+RUN apt-get update && apt-get install -y clang-tools-$(($LLVM_HEAD_VERSION - 1)) clang-tools-$LLVM_HEAD_VERSION
# Install the most recent GCC, like clang install the previous version as a transition.
ENV GCC_LATEST_VERSION=12