From d5aed58e1f21d87b36ca6f4606c876a5f9104859 Mon Sep 17 00:00:00 2001 From: Ian Petersen Date: Sat, 31 Aug 2024 21:26:48 -0700 Subject: [PATCH] Update CI compiler matrix Add GCC 15 and Clang 18; delete MSVC in C++17 mode since it's been broken forever anyway. --- .github/workflows/libunifex-ci.yml | 84 +++++++++++++++++++++++------- 1 file changed, 66 insertions(+), 18 deletions(-) diff --git a/.github/workflows/libunifex-ci.yml b/.github/workflows/libunifex-ci.yml index dfedd194..3d217f42 100644 --- a/.github/workflows/libunifex-ci.yml +++ b/.github/workflows/libunifex-ci.yml @@ -136,6 +136,36 @@ jobs: cc: "gcc-14", cxx: "g++-14", cmake_args: "-D CMAKE_CXX_STANDARD:STRING=20" } + - { + name: "Linux GCC 15 Debug (C++17)", artifact: "Linux.tar.xz", + os: ubuntu-24.04, + io_sys: io_uring, + build_type: Debug, + cc: "gcc-15", cxx: "g++-15" + } + - { + name: "Linux GCC 15 Optimised (C++17)", artifact: "Linux.tar.xz", + os: ubuntu-24.04, + io_sys: io_uring, + build_type: RelWithDebInfo, + cc: "gcc-15", cxx: "g++-15" + } + - { + name: "Linux GCC 15 Debug (C++20)", artifact: "Linux.tar.xz", + os: ubuntu-24.04, + io_sys: io_uring, + build_type: Debug, + cc: "gcc-15", cxx: "g++-15", + cmake_args: "-D CMAKE_CXX_STANDARD:STRING=20" + } + - { + name: "Linux GCC 15 Optimised (C++20)", artifact: "Linux.tar.xz", + os: ubuntu-24.04, + io_sys: io_uring, + build_type: RelWithDebInfo, + cc: "gcc-15", cxx: "g++-15", + cmake_args: "-D CMAKE_CXX_STANDARD:STRING=20" + } - { name: "Linux Clang 12 Debug (C++17)", artifact: "Linux.tar.xz", os: ubuntu-20.04, @@ -312,6 +342,22 @@ jobs: cc: "clang-17", cxx: "clang++-17", cmake_args: "-D CMAKE_CXX_STANDARD:STRING=20 -D \"CMAKE_CXX_FLAGS:STRING=-fsanitize=address -fno-omit-frame-pointer\"" } + - { + name: "Linux Clang 18 Debug (C++20)", artifact: "Linux.tar.xz", + os: ubuntu-20.04, + io_sys: io_uring, + build_type: Debug, + cc: "clang-18", cxx: "clang++-18", + cmake_args: "-D CMAKE_CXX_STANDARD:STRING=20 -D \"CMAKE_CXX_FLAGS:STRING=-fsanitize=address -fno-omit-frame-pointer\"" + } + - { + name: "Linux Clang 18 Optimised (C++20)", artifact: "Linux.tar.xz", + os: ubuntu-20.04, + io_sys: io_uring, + build_type: RelWithDebInfo, + cc: "clang-18", cxx: "clang++-18", + cmake_args: "-D CMAKE_CXX_STANDARD:STRING=20 -D \"CMAKE_CXX_FLAGS:STRING=-fsanitize=address -fno-omit-frame-pointer\"" + } - { name: "macOS GCC Debug (C++17)", artifact: "macOS.tar.xz", os: macos-latest, @@ -366,24 +412,6 @@ jobs: cc: "clang", cxx: "clang++", cmake_args: "-D CMAKE_CXX_STANDARD:STRING=20 -D \"CMAKE_CXX_FLAGS:STRING=-fsanitize=address -fno-omit-frame-pointer\"" } - - { - name: "Windows MSVC 2019 Debug (C++17)", artifact: "Windows-MSVC.tar.xz", - os: windows-2019, - build_type: Debug, - cc: "cl", cxx: "cl", - environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat", - cmake_args: "-D CMAKE_CXX_STANDARD:STRING=17", - experimental: true - } - - { - name: "Windows MSVC 2019 Optimised (C++17)", artifact: "Windows-MSVC.tar.xz", - os: windows-2019, - build_type: RelWithDebInfo, - cc: "cl", cxx: "cl", - environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat", - cmake_args: "-D CMAKE_CXX_STANDARD:STRING=17", - experimental: true - } - { name: "Windows MSVC 2019 Debug (C++20)", artifact: "Windows-MSVC.tar.xz", os: windows-2019, @@ -506,6 +534,16 @@ jobs: chmod +x llvm.sh sudo ./llvm.sh 17 + - name: Install Clang 18g + id: install_clang_18g + if: startsWith(matrix.config.os, 'ubuntu') && ( matrix.config.cxx == 'clang++-18g' ) + shell: bash + working-directory: ${{ env.HOME }} + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + sudo ./llvm.sh 18g + - name: Install GCC 11 id: install_gcc_11 if: startsWith(matrix.config.os, 'ubuntu') && ( matrix.config.cxx == 'g++-11' ) @@ -546,6 +584,16 @@ jobs: sudo apt update sudo apt install g++-14 gcc-14 + - name: Install GCC 15 + id: install_gcc_15 + if: startsWith(matrix.config.os, 'ubuntu') && ( matrix.config.cxx == 'g++-15' ) + shell: bash + working-directory: ${{ env.HOME }} + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa -y + sudo apt update + sudo apt install g++-15 gcc-15 + - name: Install liburing id: install_liburing if: startsWith(matrix.config.os, 'ubuntu') && ( matrix.config.io_sys == 'io_uring' )