CI: add Clang 15
authorSam James <sam@gentoo.org>
Wed, 19 Oct 2022 22:04:25 +0000 (23:04 +0100)
committerTomas Mraz <tomas@openssl.org>
Fri, 21 Oct 2022 13:56:32 +0000 (15:56 +0200)
We have to use the PPA provided by LLVM because Clang 15 isn't
officially part of Ubuntu 22.04 (or any other Ubuntu release yet),
see https://apt.llvm.org/ for details.

Signed-off-by: Sam James <sam@gentoo.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/19450)

.github/workflows/compiler-zoo.yml

index a8525258c5af066f8701d7d46f657b11d0f4981f..292788ef783644df0df2d06523bb942a7e367663 100644 (file)
@@ -63,6 +63,10 @@ jobs:
           }, {
             cc: clang-14,
             distro: ubuntu-22.04
+          }, {
+            cc: clang-15,
+            distro: ubuntu-22.04,
+            llvm-ppa-name: jammy
           }
         ]
     # We set per-compiler now to allow testing with both older and newer sets
@@ -72,8 +76,29 @@ jobs:
     steps:
     - name: install packages
       run: |
+        llvm_ppa_name="${{ matrix.zoo.llvm-ppa-name }}"
+
+        # In the Matrix above, we set llvm-ppa-name if an LLVM version isn't
+        # part of the Ubuntu version we're using. See https://apt.llvm.org/.
+        if [[ -n ${llvm_ppa_name} ]] ; then
+            wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key |\
+                gpg --dearmor |\
+                sudo tee /usr/share/keyrings/llvm-snapshot.gpg.key > /dev/null
+
+            clang_version="${{ matrix.zoo.cc }}"
+            clang_version="${clang_version/clang-}"
+
+            echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/${{ matrix.zoo.llvm-ppa-name }}/ llvm-toolchain-${{ matrix.zoo.llvm-ppa-name }}-${clang_version} main" \
+                | sudo tee /etc/apt/sources.list.d/llvm.list
+            echo "deb-src [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/${{ matrix.zoo.llvm-ppa-name }}/ llvm-toolchain-${{ matrix.zoo.llvm-ppa-name }}-${clang_version} main" \
+                | sudo tee -a /etc/apt/sources.list.d/llvm.list
+
+            cat /etc/apt/sources.list.d/llvm.list
+        fi
+
         sudo apt-get update
-        sudo apt-get -yq --force-yes install ${{ matrix.zoo.cc }}
+        sudo apt-get -y install ${{ matrix.zoo.cc }}
+
     - uses: actions/checkout@v2
 
     - name: config