From d4157bdf38681e44b41afa3143343cec47893ace Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Sat, 10 Sep 2022 01:21:36 +0300 Subject: [PATCH] GitHub Actions config update. - Added gcc-12 and clang-14 through 15 jobs. - Added C++23 testing for gcc and clang on Linux. - Updated clang version for UBSAN job. - Updated Ubuntu version for clang jobs to avoid having to use external APT repository. - Updated python package installation for compatibility with Ubuntu 22.04. --- .github/workflows/ci.yml | 85 ++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index db5fc22..4448f3d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,22 +102,23 @@ jobs: install: - g++-10 - toolset: gcc-11 - cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu" - os: ubuntu-20.04 + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,23-gnu" + os: ubuntu-22.04 install: - g++-11 - sources: - - "ppa:ubuntu-toolchain-r/test" + - toolset: gcc-12 + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,23-gnu" + os: ubuntu-22.04 + install: + - g++-12 - name: UBSAN toolset: gcc-11 - cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu" + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,23-gnu" ubsan: 1 build_variant: debug - os: ubuntu-20.04 + os: ubuntu-22.04 install: - g++-11 - sources: - - "ppa:ubuntu-toolchain-r/test" # Linux, clang - toolset: clang @@ -208,62 +209,64 @@ jobs: - toolset: clang compiler: clang++-11 cxxstd: "03,11,14,17,20" - os: ubuntu-20.04 + os: ubuntu-22.04 install: - clang-11 - toolset: clang compiler: clang++-12 - cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu" - os: ubuntu-20.04 + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu" + os: ubuntu-22.04 install: - clang-12 - - toolset: clang - compiler: clang++-12 - cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu" - os: ubuntu-20.04 - install: - - clang-12 - - libc++-12-dev - - libc++abi-12-dev - cxxflags: -stdlib=libc++ - linkflags: -stdlib=libc++ - toolset: clang compiler: clang++-13 - cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu" - os: ubuntu-20.04 + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu" + os: ubuntu-22.04 install: - clang-13 + - toolset: clang + compiler: clang++-14 + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu" + os: ubuntu-22.04 + install: + - clang-14 + - toolset: clang + compiler: clang++-15 + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu" + os: ubuntu-22.04 + install: + - clang-15 sources: - - "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main" + - "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main" source_keys: - "https://apt.llvm.org/llvm-snapshot.gpg.key" - toolset: clang - compiler: clang++-13 - cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu" - os: ubuntu-20.04 + compiler: clang++-15 + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu" + os: ubuntu-22.04 install: - - clang-13 - - libc++-13-dev - - libc++abi-13-dev + - clang-15 + - libc++-15-dev + - libc++abi-15-dev sources: - - "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main" + - "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main" source_keys: - "https://apt.llvm.org/llvm-snapshot.gpg.key" cxxflags: -stdlib=libc++ linkflags: -stdlib=libc++ - name: UBSAN toolset: clang - compiler: clang++-12 - cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu" + compiler: clang++-14 + cxxstd: "03-gnu,11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu" cxxflags: -stdlib=libc++ linkflags: -stdlib=libc++ ubsan: 1 build_variant: debug - os: ubuntu-20.04 + os: ubuntu-22.04 install: - - clang-12 - - libc++-12-dev - - libc++abi-12-dev + - clang-14 + - libc++-14-dev + - libc++abi-14-dev - toolset: clang cxxstd: "03,11,14,17,2a" @@ -287,7 +290,13 @@ jobs: if [ -f "/etc/debian_version" ] then apt-get -o Acquire::Retries=$NET_RETRY_COUNT update - apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y sudo software-properties-common tzdata wget curl apt-transport-https ca-certificates make build-essential g++ python python3 perl git cmake + if [ "$(apt-cache search "^python-is-python3$" | wc -l)" -ne 0 ] + then + PYTHON_PACKAGE="python-is-python3" + else + PYTHON_PACKAGE="python" + fi + apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y sudo software-properties-common tzdata wget curl apt-transport-https ca-certificates make build-essential g++ $PYTHON_PACKAGE python3 perl git cmake fi fi git config --global pack.threads 0