Compare commits

..
Author SHA1 Message Date
Andrey Semashev b2732300e8 Updated GitHub Actions CI config.
Added new gcc and clang versions, replaced ubuntu-22.04 image
usage with containers as the image will soon be deprecated.
2026-08-14 00:12:01 +03:00
+68 -46
View File
@@ -1,4 +1,4 @@
# Copyright 2021-2025 Andrey Semashev # Copyright 2021-2026 Andrey Semashev
# #
# Distributed under the Boost Software License, Version 1.0. # 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) # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
@@ -71,12 +71,14 @@ jobs:
- g++-10 - g++-10
- toolset: gcc-11 - toolset: gcc-11
cxxstd: "11,14,17,20,23" cxxstd: "11,14,17,20,23"
os: ubuntu-22.04 os: ubuntu-latest
container: ubuntu:22.04
install: install:
- g++-11 - g++-11
- toolset: gcc-12 - toolset: gcc-12
cxxstd: "11,14,17,20,23" cxxstd: "11,14,17,20,23"
os: ubuntu-22.04 os: ubuntu-latest
container: ubuntu:22.04
install: install:
- g++-12 - g++-12
- toolset: gcc-13 - toolset: gcc-13
@@ -91,18 +93,22 @@ jobs:
- g++-14 - g++-14
- toolset: gcc-15 - toolset: gcc-15
cxxstd: "11,14,17,20,23,26" cxxstd: "11,14,17,20,23,26"
os: ubuntu-latest os: ubuntu-26.04
container: ubuntu:25.04
install: install:
- g++-15 - g++-15
- toolset: gcc-16
cxxstd: "11,14,17,20,23,26"
os: ubuntu-26.04
install:
- g++-16
- name: UBSAN - name: UBSAN
toolset: gcc-13 toolset: gcc-15
cxxstd: "11,14,17,20,23" cxxstd: "11,14,17,20,23,26"
ubsan: 1 ubsan: 1
build_variant: debug build_variant: debug
os: ubuntu-24.04 os: ubuntu-26.04
install: install:
- g++-13 - g++-15
# Linux, clang # Linux, clang
- toolset: clang - toolset: clang
@@ -195,7 +201,8 @@ jobs:
- toolset: clang - toolset: clang
compiler: clang++-11 compiler: clang++-11
cxxstd: "11,14,17,20" cxxstd: "11,14,17,20"
os: ubuntu-22.04 os: ubuntu-latest
container: ubuntu:22.04
install: install:
- clang-11 - clang-11
- g++-11 - g++-11
@@ -203,7 +210,8 @@ jobs:
- toolset: clang - toolset: clang
compiler: clang++-12 compiler: clang++-12
cxxstd: "11,14,17,20,2b" cxxstd: "11,14,17,20,2b"
os: ubuntu-22.04 os: ubuntu-latest
container: ubuntu:22.04
install: install:
- clang-12 - clang-12
- g++-11 - g++-11
@@ -211,7 +219,8 @@ jobs:
- toolset: clang - toolset: clang
compiler: clang++-13 compiler: clang++-13
cxxstd: "11,14,17,20,2b" cxxstd: "11,14,17,20,2b"
os: ubuntu-22.04 os: ubuntu-latest
container: ubuntu:22.04
install: install:
- clang-13 - clang-13
- g++-11 - g++-11
@@ -219,7 +228,8 @@ jobs:
- toolset: clang - toolset: clang
compiler: clang++-14 compiler: clang++-14
cxxstd: "11,14,17,20,2b" cxxstd: "11,14,17,20,2b"
os: ubuntu-22.04 os: ubuntu-latest
container: ubuntu:22.04
install: install:
- clang-14 - clang-14
- g++-11 - g++-11
@@ -227,7 +237,8 @@ jobs:
- toolset: clang - toolset: clang
compiler: clang++-15 compiler: clang++-15
cxxstd: "11,14,17,20,2b" cxxstd: "11,14,17,20,2b"
os: ubuntu-22.04 os: ubuntu-latest
container: ubuntu:22.04
install: install:
- clang-15 - clang-15
- g++-11 - g++-11
@@ -264,41 +275,54 @@ jobs:
- toolset: clang - toolset: clang
compiler: clang++-20 compiler: clang++-20
cxxstd: "11,14,17,20,23,26" cxxstd: "11,14,17,20,23,26"
os: ubuntu-latest os: ubuntu-26.04
container: ubuntu:25.04
install: install:
- clang-20 - clang-20
- toolset: clang - toolset: clang
compiler: clang++-20 compiler: clang++-21
cxxstd: "11,14,17,20,23,26" cxxstd: "11,14,17,20,23,26"
os: ubuntu-latest os: ubuntu-26.04
container: ubuntu:25.04
install: install:
- clang-20 - clang-21
- libc++-20-dev - toolset: clang
- libc++abi-20-dev 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++ cxxflags: -stdlib=libc++
linkflags: -stdlib=libc++ linkflags: -stdlib=libc++
- name: UBSAN - name: UBSAN
toolset: clang toolset: clang
compiler: clang++-18 compiler: clang++-22
cxxstd: "11,14,17,20,23,26" cxxstd: "11,14,17,20,23,26"
cxxflags: -stdlib=libc++ cxxflags: -stdlib=libc++
linkflags: "-stdlib=libc++ -lubsan" linkflags: "-stdlib=libc++ -lubsan"
ubsan: 1 ubsan: 1
build_variant: debug build_variant: debug
os: ubuntu-24.04 os: ubuntu-26.04
install: install:
- clang-18 - clang-22
- libc++-18-dev - libc++-22-dev
- libc++abi-18-dev - libc++abi-22-dev
- toolset: clang - toolset: clang
cxxstd: "11,14,17,20,2b"
os: macos-14 os: macos-14
cxxstd: "11,14,17,20,2b"
- toolset: clang - toolset: clang
cxxstd: "11,14,17,20,23"
os: macos-15 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 - name: CMake tests
cmake_tests: 1 cmake_tests: 1
@@ -434,6 +458,7 @@ jobs:
BUILD_JOBS=$((nproc || sysctl -n hw.ncpu) 2> /dev/null) BUILD_JOBS=$((nproc || sysctl -n hw.ncpu) 2> /dev/null)
echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV
echo "CMAKE_BUILD_PARALLEL_LEVEL=$BUILD_JOBS" >> $GITHUB_ENV echo "CMAKE_BUILD_PARALLEL_LEVEL=$BUILD_JOBS" >> $GITHUB_ENV
echo BUILD_JOBS: $BUILD_JOBS
DEPINST_ARGS=() DEPINST_ARGS=()
GIT_VERSION="$(git --version | sed -e 's/git version //')" GIT_VERSION="$(git --version | sed -e 's/git version //')"
GIT_HAS_JOBS=1 GIT_HAS_JOBS=1
@@ -485,25 +510,22 @@ jobs:
git submodule update --init tools/boostdep git submodule update --init tools/boostdep
DEPINST_ARGS+=("$LIBRARY") DEPINST_ARGS+=("$LIBRARY")
python tools/boostdep/depinst/depinst.py "${DEPINST_ARGS[@]}" 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 " : <compileflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" <linkflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\"" >> ~/user-config.jam
fi
echo " ;" >> ~/user-config.jam
fi
fi
- name: Run tests - name: Run tests
if: matrix.cmake_tests == '' if: matrix.cmake_tests == ''
run: | run: |
cd boost-root 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 " : <compileflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" <linkflags>\"--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}}") B2_ARGS=("-j" "$BUILD_JOBS" "toolset=${{matrix.toolset}}" "cxxstd=${{matrix.cxxstd}}")
if [ -n "${{matrix.build_variant}}" ] if [ -n "${{matrix.build_variant}}" ]
then then
@@ -518,7 +540,7 @@ jobs:
if [ -n "${{matrix.ubsan}}" ] if [ -n "${{matrix.ubsan}}" ]
then then
export UBSAN_OPTIONS="print_stacktrace=1" 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 fi
if [ -n "${{matrix.cxxflags}}" ] if [ -n "${{matrix.cxxflags}}" ]
then then
@@ -605,12 +627,12 @@ jobs:
rmdir /s /q "..\snapshot" rmdir /s /q "..\snapshot"
git submodule update --init tools/boostdep git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs %GIT_FETCH_JOBS%" %LIBRARY% python tools/boostdep/depinst/depinst.py --git_args "--jobs %GIT_FETCH_JOBS%" %LIBRARY%
cmd /c bootstrap
b2 -d0 headers
- name: Run tests - name: Run tests
run: | run: |
cd boost-root cd boost-root
cmd /c bootstrap
b2 -d0 headers
if not "${{matrix.cxxstd}}" == "" set CXXSTD=cxxstd=${{matrix.cxxstd}} if not "${{matrix.cxxstd}}" == "" set CXXSTD=cxxstd=${{matrix.cxxstd}}
if not "${{matrix.addrmd}}" == "" set ADDRMD=address-model=${{matrix.addrmd}} 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%) if not "${{matrix.build_variant}}" == "" (set BUILD_VARIANT=variant=${{matrix.build_variant}}) else (set BUILD_VARIANT=variant=%DEFAULT_BUILD_VARIANT%)