|
1 | 1 | ARG LLVM_VERSION=21.1.0 |
| 2 | +# FIXME: Use "${LLVM_VERSION%%.*}" instead of "LLVM_VERSION_MAJOR" once we update runners to Ubuntu-26.04 with Buildah >= 1.37 |
| 3 | +ARG LLVM_VERSION_MAJOR=21 |
2 | 4 |
|
3 | 5 | FROM docker.io/library/ubuntu:24.04 AS llvm-downloader |
4 | 6 | ARG LLVM_VERSION |
| 7 | +ARG LLVM_VERSION_MAJOR |
5 | 8 |
|
6 | 9 | RUN apt-get update && \ |
7 | 10 | apt-get install -y wget xz-utils && \ |
8 | 11 | wget -O llvm.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz && \ |
9 | 12 | mkdir -p /llvm-extract && \ |
10 | 13 | tar -xvJf llvm.tar.xz -C /llvm-extract \ |
11 | 14 | # Only unpack these tools to save space on Github runner. |
| 15 | + LLVM-${LLVM_VERSION}-Linux-X64/bin/clang-${LLVM_VERSION_MAJOR} \ |
| 16 | + LLVM-${LLVM_VERSION}-Linux-X64/lib/clang/${LLVM_VERSION_MAJOR}/include \ |
12 | 17 | LLVM-${LLVM_VERSION}-Linux-X64/bin/clang-tidy \ |
13 | 18 | LLVM-${LLVM_VERSION}-Linux-X64/bin/clang-format \ |
14 | 19 | LLVM-${LLVM_VERSION}-Linux-X64/bin/git-clang-format && \ |
@@ -50,12 +55,27 @@ RUN pip install -r requirements_formatting.txt --break-system-packages && \ |
50 | 55 |
|
51 | 56 | FROM base AS ci-container-code-lint |
52 | 57 | ARG LLVM_VERSION |
| 58 | +ARG LLVM_VERSION_MAJOR |
53 | 59 |
|
54 | | -COPY --from=llvm-downloader /llvm-extract/LLVM-${LLVM_VERSION}-Linux-X64/bin/clang-tidy ${LLVM_SYSROOT}/bin/ |
| 60 | +COPY --from=llvm-downloader /llvm-extract/LLVM-${LLVM_VERSION}-Linux-X64/bin/clang-tidy \ |
| 61 | + /llvm-extract/LLVM-${LLVM_VERSION}-Linux-X64/bin/clang-${LLVM_VERSION_MAJOR} \ |
| 62 | + ${LLVM_SYSROOT}/bin/ |
| 63 | +COPY --from=llvm-downloader /llvm-extract/LLVM-${LLVM_VERSION}-Linux-X64/lib/clang/${LLVM_VERSION_MAJOR}/include \ |
| 64 | + ${LLVM_SYSROOT}/lib/clang/${LLVM_VERSION_MAJOR}/include |
55 | 65 | COPY clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py ${LLVM_SYSROOT}/bin/clang-tidy-diff.py |
56 | 66 |
|
| 67 | +RUN ln -s ${LLVM_SYSROOT}/bin/clang-${LLVM_VERSION_MAJOR} ${LLVM_SYSROOT}/bin/clang && \ |
| 68 | + ln -s ${LLVM_SYSROOT}/bin/clang ${LLVM_SYSROOT}/bin/clang++ |
| 69 | + |
57 | 70 | ENV PATH=${LLVM_SYSROOT}/bin:${PATH} |
58 | 71 |
|
| 72 | +RUN apt-get update && \ |
| 73 | + DEBIAN_FRONTEND=noninteractive apt-get install -y \ |
| 74 | + cmake \ |
| 75 | + ninja-build && \ |
| 76 | + apt-get clean && \ |
| 77 | + rm -rf /var/lib/apt/lists/* |
| 78 | + |
59 | 79 | # Install dependencies for 'pr-code-lint.yml' job |
60 | 80 | COPY llvm/utils/git/requirements_linting.txt requirements_linting.txt |
61 | 81 | RUN pip install -r requirements_linting.txt --break-system-packages && \ |
|
0 commit comments