11# Copyright 2020-2021 Peter Dimov
22# Copyright 2021 Andrey Semashev
33# Copyright 2021 Alexander Grund
4- # Copyright 2022 James E. King III
4+ # Copyright 2022-2024 James E. King III
55#
66# Distributed under the Boost Software License, Version 1.0.
77# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
1818 - feature/**
1919 - fix/**
2020 - pr/**
21+ paths-ignore :
22+ - LICENSE
23+ - meta/**
24+ - README.md
2125
2226concurrency :
2327 group : ${{format('{0}:{1}', github.repository, github.ref)}}
2933 B2_CI_VERSION : 1
3034 B2_VARIANT : debug,release
3135 B2_LINK : shared,static
32- LCOV_BRANCH_COVERAGE : 1
33- CODECOV_NAME : Github Actions
36+ LCOV_BRANCH_COVERAGE : 0
3437
3538jobs :
3639 posix :
@@ -42,54 +45,37 @@ jobs:
4245 fail-fast : false
4346 matrix :
4447 include :
45- # Linux, gcc
46- - { compiler: gcc-4.8, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' }
47- - { compiler: gcc-4.9, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' }
48- - { compiler: gcc-5, cxxstd: '11,14,1z', os: ubuntu-latest, container: 'ubuntu:18.04' }
49- - { compiler: gcc-6, cxxstd: '11,14,17', os: ubuntu-latest, container: 'ubuntu:18.04' }
50- - { compiler: gcc-7, cxxstd: '11,14,17', os: ubuntu-20.04 }
51- - { compiler: gcc-8, cxxstd: '11,14,17,2a', os: ubuntu-20.04 }
52- - { compiler: gcc-9, cxxstd: '11,14,17,2a', os: ubuntu-20.04 }
53- - { compiler: gcc-10, cxxstd: '11,14,17,20', os: ubuntu-22.04 }
54- - { compiler: gcc-11, cxxstd: '11,14,17,20', os: ubuntu-22.04 }
55- - { compiler: gcc-12, cxxstd: '11,14,17,20', os: ubuntu-22.04 }
56- - { compiler: gcc-13, cxxstd: '11,14,17,20,2b', os: ubuntu-24.04 }
48+ # linux, gcc
49+ - { compiler: gcc-7, cxxstd: '11,14,17', os: ubuntu-20.04 }
50+ - { compiler: gcc-8, cxxstd: '11,14,17,2a', os: ubuntu-20.04 }
51+ - { compiler: gcc-9, cxxstd: '11,14,17,2a', os: ubuntu-20.04 }
52+ - { compiler: gcc-10, cxxstd: '11,14,17,20', os: ubuntu-20.04 }
53+ - { compiler: gcc-11, cxxstd: '11,14,17,20', os: ubuntu-20.04 }
54+ - { compiler: gcc-12, cxxstd: '11,14,17,20', os: ubuntu-22.04 }
55+ - { compiler: gcc-13, cxxstd: '11,14,17,20,2b', os: ubuntu-22.04 }
5756 - { compiler: gcc-14, cxxstd: '11,14,17,20,2b', os: ubuntu-24.04 }
5857 - { name: GCC w/ sanitizers, sanitize: yes,
59- compiler : gcc-13, cxxstd: '11,14,17,20', os: ubuntu-24 .04 }
58+ compiler : gcc-13, cxxstd: '11,14,17,20', os: ubuntu-22 .04 }
6059 - { name: Collect coverage, coverage: yes,
61- compiler : gcc-13, cxxstd: '11,14,17,20,2b', os: ubuntu-24.04, install: 'g++-13-multilib', address-model: '32,64' }
62-
63- # Linux, clang
64- - { compiler: clang-3.5, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' }
65- - { compiler: clang-3.6, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:16.04' }
66- - { compiler: clang-3.7, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:16.04' }
67- - { compiler: clang-3.8, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:16.04' }
68- - { compiler: clang-3.9, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:18.04' }
69- - { compiler: clang-4.0, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:18.04' }
70- - { compiler: clang-5.0, cxxstd: '11,14,1z', os: ubuntu-latest, container: 'ubuntu:18.04' }
71- - { compiler: clang-6.0, cxxstd: '11,14,17', os: ubuntu-20.04 }
72- - { compiler: clang-7, cxxstd: '11,14,17', os: ubuntu-20.04 }
73- # Note: clang-8 does not fully support C++20, so it is not compatible with some libstdc++ versions in this mode
74- - { compiler: clang-8, cxxstd: '11,14,17,2a', os: ubuntu-20.04 , install: 'clang-8 g++-7', gcc_toolchain: 7 }
75- - { compiler: clang-9, cxxstd: '11,14,17,2a', os: ubuntu-20.04 }
76- - { compiler: clang-10, cxxstd: '11,14,17,20', os: ubuntu-20.04 }
77- - { compiler: clang-11, cxxstd: '11,14,17,20', os: ubuntu-20.04 }
78- - { compiler: clang-12, cxxstd: '11,14,17,20', os: ubuntu-20.04 }
60+ compiler : gcc-12, cxxstd: '11', os: ubuntu-22.04, install: 'g++-12-multilib', address-model: '32,64' }
61+
62+ # linux, clang
63+ - { compiler: clang-9, cxxstd: '11,14,17,2a', os: ubuntu-20.04 }
64+ - { compiler: clang-10, cxxstd: '11,14,17,20', os: ubuntu-20.04 }
65+ - { compiler: clang-11, cxxstd: '11,14,17,20', os: ubuntu-20.04 }
66+ - { compiler: clang-12, cxxstd: '11,14,17,20', os: ubuntu-20.04 }
7967 # Clang isn't compatible with libstdc++-13, so use the slightly older one
80- - { compiler: clang-13, cxxstd: '11,14,17,20', os: ubuntu-22.04, install: 'clang-13 g++-12', gcc_toolchain: 12 }
81- - { compiler: clang-14, cxxstd: '11,14,17,20', os: ubuntu-22.04, install: 'clang-14 g++-12', gcc_toolchain: 12 }
82- - { compiler: clang-15, cxxstd: '11,14,17,20', os: ubuntu-22.04, install: 'clang-15 g++-12', gcc_toolchain: 12 }
68+ - { compiler: clang-13, cxxstd: '11,14,17,20', os: ubuntu-22.04, install: 'clang-13 g++-12', gcc_toolchain: 12 }
69+ - { compiler: clang-14, cxxstd: '11,14,17,20', os: ubuntu-22.04, install: 'clang-14 g++-12', gcc_toolchain: 12 }
70+ - { compiler: clang-15, cxxstd: '11,14,17,20', os: ubuntu-22.04, install: 'clang-15 g++-12', gcc_toolchain: 12 }
8371 - { compiler: clang-16, cxxstd: '11,14,17,20,2b', os: ubuntu-24.04 }
8472 # https://github.com/llvm/llvm-project/issues/59827: disabled 2b/23 for clang-17 with libstdc++13 in 24.04
85- - { compiler: clang-17, cxxstd: '11,14,17,20', os: ubuntu-24.04 }
86- - { compiler: clang-18, cxxstd: '11,14, 17,20,23,2c', os: ubuntu-24.04 }
73+ - { compiler: clang-17, cxxstd: '11,14,17,20', os: ubuntu-24.04 }
74+ - { compiler: clang-18, cxxstd: '11,17,20,23,2c', os: ubuntu-24.04 }
8775
88- # libc++
89- - { compiler: clang-6.0, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:18.04', stdlib: libc++, install: 'clang-6.0 libc++-dev libc++abi-dev' }
90- - { compiler: clang-7, cxxstd: '11,14,17', os: ubuntu-20.04, stdlib: libc++, install: 'clang-7 libc++-7-dev libc++abi-7-dev' }
76+ # linux, libc++
9177 - { name: Clang w/ sanitizers, sanitize: yes,
92- compiler : clang-12, cxxstd: '11,14,17,20', os: ubuntu-20.04, stdlib: libc++, install: 'clang-12 libc++-12-dev libc++abi-12-dev' }
78+ compiler : clang-12, cxxstd: '11,14,17,20', os: ubuntu-20.04, stdlib: ' libc++' , install: 'clang-12 libc++-12-dev libc++abi-12-dev' }
9379
9480 - { name: MacOS w/ clang and sanitizers,
9581 compiler : clang, cxxstd: '11,14,17,20,2b', os: macos-13, sanitize: yes }
@@ -100,20 +86,14 @@ jobs:
10086 # requires two github secrets in repo to activate; see ci/github/coverity.sh
10187 # does not run on pull requests, only on pushes into develop and master
10288 - { name: Coverity, coverity: yes,
103- compiler : clang-12, cxxstd: '11,20', os: ubuntu-20.04, ccache: no }
89+ compiler : clang-12, cxxstd: '17', os: ubuntu-20.04, ccache: no }
10490
10591 # multiarch (bigendian testing) - does not support coverage yet
10692 - { name: Big-endian, multiarch: yes,
10793 compiler : clang, cxxstd: '17', os: ubuntu-22.04, ccache: no, distro: fedora, edition: 34, arch: s390x }
10894
109-
11095 timeout-minutes : 120
11196 runs-on : ${{matrix.os}}
112- container :
113- image : ${{matrix.container}}
114- volumes :
115- - /node20217:/node20217:rw,rshared
116- - ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
11797 env : {B2_USE_CCACHE: 1}
11898
11999 steps :
@@ -131,7 +111,7 @@ jobs:
131111 for i in {1..${NET_RETRY_COUNT:-3}}; do sudo -E add-apt-repository -y ppa:git-core/ppa && break || sleep 10; done
132112 apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
133113 osver=$(lsb_release -sr | cut -f1 -d.)
134- pkgs="g++ git"
114+ pkgs="g++ git xz-utils "
135115 # Ubuntu 22+ has only Python 3 in the repos
136116 if [ -n "$osver" ] && [ "$osver" -ge "22" ]; then
137117 pkgs+=" python-is-python3 libpython3-dev"
@@ -182,8 +162,8 @@ jobs:
182162 - name : Install packages
183163 if : startsWith(matrix.os, 'ubuntu')
184164 run : |
185- SOURCE_KEYS=(${{join(matrix.source_keys, ' ')}})
186- SOURCES=(${{join(matrix.sources, ' ')}})
165+ SOURCE_KEYS=(" ${{join(matrix.source_keys, '" " ')}}" )
166+ SOURCES=(" ${{join(matrix.sources, '" " ')}}" )
187167 # Add this by default
188168 SOURCE_KEYS+=('http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1E9377A2BA9EF27F')
189169 SOURCES+=(ppa:ubuntu-toolchain-r/test)
@@ -249,21 +229,11 @@ jobs:
249229 if : ' !matrix.coverity'
250230 run : ci/build.sh
251231
252- - name : Collect coverage
232+ - name : Upload coverage
253233 if : matrix.coverage
254234 run : ci/codecov.sh "upload"
255235 env :
256- BOOST_CI_CODECOV_IO_UPLOAD : skip
257-
258- - name : Upload coverage
259- if : matrix.coverage
260- uses : codecov/codecov-action@v4
261- with :
262- disable_search : true
263- file : coverage.info
264- name : Github Actions
265- token : ${{secrets.CODECOV_TOKEN}}
266- verbose : true
236+ CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
267237
268238 - name : Run coverity
269239 if : matrix.coverity && github.event_name == 'push' && (github.ref_name == 'develop' || github.ref_name == 'master')
@@ -280,13 +250,13 @@ jobs:
280250 fail-fast : false
281251 matrix :
282252 include :
283- - { toolset: msvc-14.0, cxxstd: '14,latest', addrmd: '32,64', os: windows-2019 }
284- - { toolset: msvc-14.2, cxxstd: '14,17,20', addrmd: '32,64', os: windows-2019 }
285- - { toolset: msvc-14.3, cxxstd: '14,17,20,latest', addrmd: '32,64', os: windows-2022 }
253+ - { toolset: msvc-14.0, cxxstd: '14,latest', addrmd: '32,64', os: windows-2019 }
254+ - { toolset: msvc-14.2, cxxstd: '14,17,20', addrmd: '32,64', os: windows-2019 }
255+ - { toolset: msvc-14.3, cxxstd: '14,17,20,latest',addrmd: '32,64', os: windows-2022 }
286256 - { name: Collect coverage, coverage: yes,
287- toolset : msvc-14.3, cxxstd: 'latest', addrmd: '64', os: windows-2022 }
288- - { toolset: clang-win, cxxstd: '14,17,latest', addrmd: '32,64', os: windows-2022 }
289- - { toolset: gcc, cxxstd: '11,14,17,2a', addrmd: '64', os: windows-2019 }
257+ toolset : msvc-14.3, cxxstd: 'latest', addrmd: '64', os: windows-2022 }
258+ - { toolset: clang-win, cxxstd: '14,17,latest', addrmd: '32,64', os: windows-2022 }
259+ - { toolset: gcc, cxxstd: '11,14,17,2a', addrmd: '64', os: windows-2019 }
290260
291261 runs-on : ${{matrix.os}}
292262
@@ -327,11 +297,12 @@ jobs:
327297
328298 - name : Upload coverage
329299 if : matrix.coverage
330- uses : codecov/codecov-action@v4
300+ uses : codecov/codecov-action@v5
331301 with :
332302 disable_search : true
333- file : __out/cobertura.xml
334- name : Github Actions
303+ fail_ci_if_error : true
304+ files : __out/cobertura.xml
305+ name : github-actions
335306 token : ${{secrets.CODECOV_TOKEN}}
336307 verbose : true
337308
@@ -458,3 +429,4 @@ jobs:
458429 cmake -G "${{matrix.generator}}" -DBOOST_CI_INSTALL_TEST=ON -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.build_shared}} -DCMAKE_PREFIX_PATH=~/.local ..
459430 cmake --build . --config ${{matrix.build_type}} -j$B2_JOBS
460431 ctest --output-on-failure --build-config ${{matrix.build_type}}
432+
0 commit comments