From 696bb7f6f4379639a42a349fbbc6aa814fbddae4 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Sun, 15 Dec 2024 19:33:09 +0300 Subject: [PATCH] Updated GitHub Actions CI. Removed macos-12 job as the image has been removed from GHA. Added new compilers and updated the old ones to avoid using external package repositories. Added CMake testing with MinGW-w64. --- .github/workflows/ci.yml | 84 ++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f459e3be1..180c5c0a7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -82,11 +82,9 @@ jobs: - g++-10 - toolset: gcc-11 cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu" - os: ubuntu-20.04 + os: ubuntu-22.04 install: - g++-11 - sources: - - "ppa:ubuntu-toolchain-r/test" - toolset: gcc-12 cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu" os: ubuntu-22.04 @@ -98,16 +96,19 @@ jobs: container: ubuntu:23.04 install: - g++-13 + - toolset: gcc-14 + cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu,26-gnu" + os: ubuntu-24.04 + install: + - g++-14 - name: UBSAN - toolset: gcc-11 - cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu" + toolset: gcc-13 + cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu" ubsan: 1 build_variant: debug - os: ubuntu-20.04 + os: ubuntu-24.04 install: - - g++-11 - sources: - - "ppa:ubuntu-toolchain-r/test" + - g++-13 # Linux, clang - toolset: clang @@ -134,7 +135,7 @@ jobs: - toolset: clang compiler: clang++-3.8 cxxstd: "11,14" - os: ubuntu-20.04 + os: ubuntu-latest container: ubuntu:16.04 install: - clang-3.8 @@ -248,54 +249,64 @@ jobs: - toolset: clang compiler: clang++-16 cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu" - os: ubuntu-22.04 + os: ubuntu-24.04 install: - clang-16 - sources: - - "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" - source_keys: - - "https://apt.llvm.org/llvm-snapshot.gpg.key" + - g++-11 + gcc_toolchain: 11 - toolset: clang compiler: clang++-17 cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu" - os: ubuntu-22.04 + os: ubuntu-24.04 install: - clang-17 + - g++-11 + gcc_toolchain: 11 + - toolset: clang + compiler: clang++-18 + cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu,26-gnu" + os: ubuntu-24.04 + install: + - clang-18 + - g++-13 + - toolset: clang + compiler: clang++-19 + cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu,26-gnu" + os: ubuntu-24.04 + install: + - clang-19 sources: - - "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main" + - "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main" source_keys: - "https://apt.llvm.org/llvm-snapshot.gpg.key" - toolset: clang - compiler: clang++-17 - cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu" + compiler: clang++-19 + cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu,26-gnu" cxxflags: -stdlib=libc++ linkflags: -stdlib=libc++ - os: ubuntu-22.04 + os: ubuntu-24.04 install: - - clang-17 - - libc++-17-dev - - libc++abi-17-dev + - clang-19 + - libc++-19-dev + - libc++abi-19-dev sources: - - "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main" + - "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main" source_keys: - "https://apt.llvm.org/llvm-snapshot.gpg.key" - name: UBSAN toolset: clang - compiler: clang++-15 - cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,2b-gnu" + compiler: clang++-18 + cxxstd: "11-gnu,14-gnu,17-gnu,20-gnu,23-gnu,26-gnu" cxxflags: -stdlib=libc++ linkflags: "-stdlib=libc++ -lubsan" ubsan: 1 build_variant: debug - os: ubuntu-22.04 + os: ubuntu-24.04 install: - - clang-15 - - libc++-15-dev - - libc++abi-15-dev + - clang-18 + - libc++-18-dev + - libc++abi-18-dev - - toolset: clang - cxxstd: "11,14,17,20,2b" - os: macos-12 - toolset: clang cxxstd: "11,14,17,20,2b" os: macos-13 @@ -564,9 +575,13 @@ jobs: cxxstd: "11-gnu,14-gnu,17-gnu,2a-gnu" os: windows-2019 - - name: CMake tests + - name: CMake MSVC tests + cmake_tests: 1 + os: windows-2022 + - name: CMake MinGW-w64 tests cmake_tests: 1 os: windows-2022 + cmake_generator: "MinGW Makefiles" timeout-minutes: 30 runs-on: ${{matrix.os}} @@ -625,6 +640,7 @@ jobs: - name: Run CMake tests if: matrix.cmake_tests run: | + if not "${{matrix.cmake_generator}}" == "" set "CMAKE_GENERATOR=${{matrix.cmake_generator}}" cd boost-root mkdir __build_static__ cd __build_static__