Browse Source

CI: Upgrade to Ubuntu 22.04 to add GCC 12, Clang 13, Clang 14

Notably, this might have caught #18225, as Clang 14 wasn't - and is not yet
until this commit - in OpenSSL's CI.

It makes sense to ensure CI tests compilers used in newer Linux distributions:
* Fedora 36 ships with GCC 12
* Ubuntu 22.04 ships with Clang 14

We switch from 'ubuntu-latest' (which can change meaning but currently points
to ubuntu-20.04) to ubuntu-20.04 for the older existing compilers, and
ubuntu-22.04 for the newer ones added by this commit.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18639)
Sam James 1 year ago
parent
commit
712c13c57b
1 changed files with 38 additions and 20 deletions
  1. 38 20
      .github/workflows/compiler-zoo.yml

+ 38 - 20
.github/workflows/compiler-zoo.yml

@@ -1,4 +1,4 @@
-# Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2021-2022 The OpenSSL Project Authors. All Rights Reserved.
 #
 # Licensed under the Apache License 2.0 (the "License").  You may not use
 # this file except in compliance with the License.  You can obtain a copy
@@ -16,41 +16,59 @@ jobs:
       matrix:
         zoo: [
           {
-            cc: gcc-7
+            cc: gcc-7,
+            distro: ubuntu-20.04
           }, {
-            cc: gcc-8
+            cc: gcc-8,
+            distro: ubuntu-20.04
           }, {
-            cc: gcc-9
+            cc: gcc-9,
+            distro: ubuntu-20.04
           }, {
-            cc: gcc-10
+            cc: gcc-10,
+            distro: ubuntu-20.04
           }, {
-            cc: gcc-11
+            cc: gcc-11,
+            distro: ubuntu-22.04
           }, {
-            cc: clang-6.0
+            cc: gcc-12,
+            distro: ubuntu-22.04
           }, {
-            cc: clang-7
+            cc: clang-6.0,
+            distro: ubuntu-20.04
           }, {
-            cc: clang-8
+            cc: clang-7,
+            distro: ubuntu-20.04
           }, {
-            cc: clang-9
+            cc: clang-8,
+            distro: ubuntu-20.04
           }, {
-            cc: clang-10
+            cc: clang-9,
+            distro: ubuntu-20.04
           }, {
-            cc: clang-11
+            cc: clang-10,
+            distro: ubuntu-20.04
           }, {
-            cc: clang-12
+            cc: clang-11,
+            distro: ubuntu-20.04
+          }, {
+            cc: clang-12,
+            distro: ubuntu-20.04
+          }, {
+            cc: clang-13,
+            distro: ubuntu-22.04
+          }, {
+            cc: clang-14,
+            distro: ubuntu-22.04
           }
         ]
-    runs-on: ubuntu-latest
+    # We set per-compiler now to allow testing with both older and newer sets
+    # Often, the full range of oldest->newest compilers we want aren't available
+    # in a single version of Ubuntu.
+    runs-on: ${{ matrix.zoo.distro }}
     steps:
     - name: install packages
       run: |
-        echo "deb https://ppa.launchpadcontent.net/ubuntu-toolchain-r/ppa/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/gcc.list
-        echo "deb-src https://ppa.launchpadcontent.net/ubuntu-toolchain-r/ppa/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/gcc.list
-
-        # From https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/ppa
-        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 60C317803A41BA51845E371A1E9377A2BA9EF27F
-
         sudo apt-get update
         sudo apt-get -yq --force-yes install ${{ matrix.zoo.cc }}
     - uses: actions/checkout@v2