diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 76e3614..02638d6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -# Copyright 2021-2025 Andrey Semashev +# Copyright 2021-2026 Andrey Semashev # # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) @@ -71,12 +71,14 @@ jobs: - g++-10 - toolset: gcc-11 cxxstd: "11,14,17,20,23" - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - g++-11 - toolset: gcc-12 cxxstd: "11,14,17,20,23" - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - g++-12 - toolset: gcc-13 @@ -91,18 +93,22 @@ jobs: - g++-14 - toolset: gcc-15 cxxstd: "11,14,17,20,23,26" - os: ubuntu-latest - container: ubuntu:25.04 + os: ubuntu-26.04 install: - g++-15 + - toolset: gcc-16 + cxxstd: "11,14,17,20,23,26" + os: ubuntu-26.04 + install: + - g++-16 - name: UBSAN - toolset: gcc-13 - cxxstd: "11,14,17,20,23" + toolset: gcc-15 + cxxstd: "11,14,17,20,23,26" ubsan: 1 build_variant: debug - os: ubuntu-24.04 + os: ubuntu-26.04 install: - - g++-13 + - g++-15 # Linux, clang - toolset: clang @@ -195,7 +201,8 @@ jobs: - toolset: clang compiler: clang++-11 cxxstd: "11,14,17,20" - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-11 - g++-11 @@ -203,7 +210,8 @@ jobs: - toolset: clang compiler: clang++-12 cxxstd: "11,14,17,20,2b" - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-12 - g++-11 @@ -211,7 +219,8 @@ jobs: - toolset: clang compiler: clang++-13 cxxstd: "11,14,17,20,2b" - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-13 - g++-11 @@ -219,7 +228,8 @@ jobs: - toolset: clang compiler: clang++-14 cxxstd: "11,14,17,20,2b" - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-14 - g++-11 @@ -227,7 +237,8 @@ jobs: - toolset: clang compiler: clang++-15 cxxstd: "11,14,17,20,2b" - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-15 - g++-11 @@ -264,41 +275,54 @@ jobs: - toolset: clang compiler: clang++-20 cxxstd: "11,14,17,20,23,26" - os: ubuntu-latest - container: ubuntu:25.04 + os: ubuntu-26.04 install: - clang-20 - toolset: clang - compiler: clang++-20 + compiler: clang++-21 cxxstd: "11,14,17,20,23,26" - os: ubuntu-latest - container: ubuntu:25.04 + os: ubuntu-26.04 install: - - clang-20 - - libc++-20-dev - - libc++abi-20-dev + - clang-21 + - toolset: clang + compiler: clang++-22 + cxxstd: "11,14,17,20,23,26" + os: ubuntu-26.04 + install: + - clang-22 + - toolset: clang + compiler: clang++-22 + cxxstd: "11,14,17,20,23,26" + os: ubuntu-26.04 + install: + - clang-22 + - libc++-22-dev + - libc++abi-22-dev cxxflags: -stdlib=libc++ linkflags: -stdlib=libc++ - name: UBSAN toolset: clang - compiler: clang++-18 + compiler: clang++-22 cxxstd: "11,14,17,20,23,26" cxxflags: -stdlib=libc++ linkflags: "-stdlib=libc++ -lubsan" ubsan: 1 build_variant: debug - os: ubuntu-24.04 + os: ubuntu-26.04 install: - - clang-18 - - libc++-18-dev - - libc++abi-18-dev + - clang-22 + - libc++-22-dev + - libc++abi-22-dev - toolset: clang - cxxstd: "11,14,17,20,2b" os: macos-14 + cxxstd: "11,14,17,20,2b" - toolset: clang - cxxstd: "11,14,17,20,23" os: macos-15 + cxxstd: "11,14,17,20,23,26" + - toolset: clang + os: macos-26 + cxxstd: "11,14,17,20,23,26" - name: CMake tests cmake_tests: 1 @@ -434,6 +458,7 @@ jobs: BUILD_JOBS=$((nproc || sysctl -n hw.ncpu) 2> /dev/null) echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV echo "CMAKE_BUILD_PARALLEL_LEVEL=$BUILD_JOBS" >> $GITHUB_ENV + echo BUILD_JOBS: $BUILD_JOBS DEPINST_ARGS=() GIT_VERSION="$(git --version | sed -e 's/git version //')" GIT_HAS_JOBS=1 @@ -485,25 +510,22 @@ jobs: git submodule update --init tools/boostdep DEPINST_ARGS+=("$LIBRARY") python tools/boostdep/depinst/depinst.py "${DEPINST_ARGS[@]}" - if [ -z "${{matrix.cmake_tests}}" ] - then - ./bootstrap.sh - ./b2 headers - if [ -n "${{matrix.compiler}}" -o -n "$GCC_TOOLCHAIN_ROOT" ] - then - echo -n "using ${{matrix.toolset}} : : ${{matrix.compiler}}" > ~/user-config.jam - if [ -n "$GCC_TOOLCHAIN_ROOT" ] - then - echo -n " : \"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" \"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\"" >> ~/user-config.jam - fi - echo " ;" >> ~/user-config.jam - fi - fi - name: Run tests if: matrix.cmake_tests == '' run: | cd boost-root + ./bootstrap.sh + ./b2 headers + if [ -n "${{matrix.compiler}}" -o -n "$GCC_TOOLCHAIN_ROOT" ] + then + echo -n "using ${{matrix.toolset}} : : ${{matrix.compiler}}" > ~/user-config.jam + if [ -n "$GCC_TOOLCHAIN_ROOT" ] + then + echo -n " : \"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" \"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\"" >> ~/user-config.jam + fi + echo " ;" >> ~/user-config.jam + fi B2_ARGS=("-j" "$BUILD_JOBS" "toolset=${{matrix.toolset}}" "cxxstd=${{matrix.cxxstd}}") if [ -n "${{matrix.build_variant}}" ] then @@ -518,7 +540,7 @@ jobs: if [ -n "${{matrix.ubsan}}" ] then export UBSAN_OPTIONS="print_stacktrace=1" - B2_ARGS+=("cxxflags=-fsanitize=undefined -fno-sanitize-recover=undefined" "linkflags=-fsanitize=undefined -fuse-ld=gold" "define=UBSAN=1" "debug-symbols=on" "visibility=global") + B2_ARGS+=("cxxflags=-fsanitize=undefined -fno-sanitize-recover=undefined" "linkflags=-fsanitize=undefined" "define=UBSAN=1" "debug-symbols=on" "visibility=global") fi if [ -n "${{matrix.cxxflags}}" ] then @@ -605,12 +627,12 @@ jobs: rmdir /s /q "..\snapshot" git submodule update --init tools/boostdep python tools/boostdep/depinst/depinst.py --git_args "--jobs %GIT_FETCH_JOBS%" %LIBRARY% - cmd /c bootstrap - b2 -d0 headers - name: Run tests run: | cd boost-root + cmd /c bootstrap + b2 -d0 headers if not "${{matrix.cxxstd}}" == "" set CXXSTD=cxxstd=${{matrix.cxxstd}} if not "${{matrix.addrmd}}" == "" set ADDRMD=address-model=${{matrix.addrmd}} if not "${{matrix.build_variant}}" == "" (set BUILD_VARIANT=variant=${{matrix.build_variant}}) else (set BUILD_VARIANT=variant=%DEFAULT_BUILD_VARIANT%)