From 1e92e2631389982616538e41fff64f7d9ecb9ce5 Mon Sep 17 00:00:00 2001 From: Dmitry Misharov Date: Thu, 28 Aug 2025 15:54:54 +0200 Subject: [PATCH] update compiler-zoo github actions workflow Reviewed-by: Paul Dale Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/28367) --- .github/workflows/compiler-zoo.yml | 124 ++++++++++------------------- 1 file changed, 42 insertions(+), 82 deletions(-) diff --git a/.github/workflows/compiler-zoo.yml b/.github/workflows/compiler-zoo.yml index aabeaa3d7d3..55cfd71e198 100644 --- a/.github/workflows/compiler-zoo.yml +++ b/.github/workflows/compiler-zoo.yml @@ -13,103 +13,63 @@ permissions: contents: read jobs: - compiler: + gcc: strategy: fail-fast: false matrix: - zoo: [ - { - cc: gcc-9, - distro: ubuntu-22.04 - }, { - cc: gcc-10, - distro: ubuntu-22.04 - }, { - cc: gcc-11, - distro: ubuntu-22.04 - }, { - cc: gcc-12, - distro: ubuntu-22.04 - }, { - cc: gcc-13, - distro: ubuntu-22.04, - gcc-ppa-name: ubuntu-toolchain-r/test - }, { - cc: clang-11, - distro: ubuntu-22.04 - }, { - cc: clang-12, - distro: ubuntu-22.04 - }, { - cc: clang-13, - distro: ubuntu-22.04 - }, { - cc: clang-14, - distro: ubuntu-22.04 - }, { - cc: clang-15, - distro: ubuntu-22.04, - llvm-ppa-name: jammy - }, { - cc: clang-16, - distro: ubuntu-22.04, - llvm-ppa-name: jammy - }, { - cc: clang-17, - distro: ubuntu-22.04, - llvm-ppa-name: jammy - } - ] - # 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 }} + gcc: [gcc-9, gcc-10, gcc-11, gcc-12, gcc-13, gcc-14] + runs-on: ubuntu-24.04 steps: - name: install packages run: | - gcc_ppa_name="${{ matrix.zoo.gcc-ppa-name }}" - llvm_ppa_name="${{ matrix.zoo.llvm-ppa-name }}" - - # In the Matrix above: - # - we set gcc-ppc-name if the GCC version isn't part of the Ubuntu version we're using (see https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test). - # - we set llvm-ppa-name if an LLVM version isn't part of the Ubuntu version we're using (see https://apt.llvm.org/). - # This is especially needed because even new Ubuntu LTSes aren't available - # until a while after release on Github Actions. - if [[ -n ${gcc_ppa_name} ]] ; then - sudo add-apt-repository ppa:ubuntu-toolchain-r/test - sudo apt-get update - elif [[ -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 -y install ${{ matrix.zoo.cc }} - - - uses: actions/checkout@v4 + sudo apt-get -y install ${{ matrix.gcc }} + - uses: actions/checkout@v5 - name: checkout fuzz/corpora submodule run: git submodule update --init --depth 1 fuzz/corpora - - name: config + env: + CC: ${{ matrix.gcc }} run: | - CC=${{ matrix.zoo.cc }} ./config --strict-warnings --banner=Configured \ - no-shared enable-fips + ./config --strict-warnings --banner=Configured no-shared enable-fips + - name: config dump + run: ./configdata.pm --dump + - name: make + run: make -s -j + - name: get cpu info + run: | + cat /proc/cpuinfo + ./util/opensslwrap.sh version -c + - name: make test + run: make test HARNESS_JOBS=${HARNESS_JOBS:-4} + clang: + strategy: + fail-fast: false + matrix: + clang: [clang-11, clang-12, clang-13, clang-14, clang-15, clang-16, clang-17, clang-18, clang-19, clang-20] + runs-on: ubuntu-22.04 + steps: + - name: install packages + run: | + set -euo pipefail + VERSION=$(awk -F- '{print $NF}' <<< ${{ matrix.clang }}) + wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc + echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-$VERSION main" | sudo tee -a /etc/apt/sources.list + sudo apt-get update || true + sudo apt-get -y install ${{ matrix.clang }} + - uses: actions/checkout@v5 + - name: checkout fuzz/corpora submodule + run: git submodule update --init --depth 1 fuzz/corpora + - name: config + env: + CC: ${{ matrix.clang }} + run: | + ./config --strict-warnings --banner=Configured no-shared enable-fips - name: config dump run: ./configdata.pm --dump - name: make - run: make -s -j4 + run: make -s -j - name: get cpu info run: | cat /proc/cpuinfo -- 2.47.3