@@ -21,13 +21,13 @@ concurrency:
2121 cancel-in-progress : true
2222
2323jobs :
24- build_and_test :
25- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
24+ build_and_test_24 :
25+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
2626 strategy :
2727 fail-fast : false
2828 matrix :
2929 compiler : [clang, gcc]
30- version : [12, 13, 14, 15, 16, 17, 18]
30+ version : [12, 13, 16, 17, 18]
3131 cxx_standard : [20]
3232 stdlib : [libstdc++, libc++]
3333 build_type : [Debug]
@@ -47,51 +47,33 @@ jobs:
4747 cxx_flags : " -stdlib=libc++"
4848 - version : 17
4949 compiler : clang
50- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 17
50+ install : sudo apt update && sudo apt install -y clang- 17
5151 toolchain_root : " /usr/lib/llvm-17"
5252 - version : 17
5353 compiler : clang
5454 stdlib : libc++
55- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 17 && sudo apt install -y libc++-17-dev libc++abi-17-dev
55+ install : sudo apt update && sudo apt install -y clang-17 libc++-17-dev libc++abi-17-dev
5656 cxx_flags : " -stdlib=libc++"
5757 - version : 16
5858 compiler : clang
59- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 16
59+ install : sudo apt update && sudo apt install -y clang- 16
6060 toolchain_root : " /usr/lib/llvm-16"
6161 - version : 16
6262 compiler : clang
6363 stdlib : libc++
64- install : wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 16 && sudo apt install -y libc++-16-dev libc++abi-16-dev
65- cxx_flags : " -stdlib=libc++"
66- - version : 15
67- compiler : clang
68- install : sudo apt update && sudo apt install -y clang-15
69- toolchain_root : " /usr/lib/llvm-15"
70- - version : 15
71- compiler : clang
72- stdlib : libc++
73- install : sudo apt update && sudo apt install -y clang-15 libc++-15-dev libc++abi-15-dev
74- cxx_flags : " -stdlib=libc++"
75- - version : 14
76- compiler : clang
77- install : sudo apt update && sudo apt install -y clang-14
78- toolchain_root : " /usr/lib/llvm-14"
79- - version : 14
80- compiler : clang
81- stdlib : libc++
82- install : sudo apt update && sudo apt install -y clang-14 libc++-14-dev libc++abi-14-dev
64+ install : sudo apt update && sudo apt install -y clang-16 libc++-16-dev libc++abi-16-dev
8365 cxx_flags : " -stdlib=libc++"
8466 - compiler : gcc
8567 toolchain_root : " /usr"
8668 cxx_flags : " "
8769 - version : 13
8870 compiler : gcc
89- install : sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt update && sudo apt install -y gcc-13 g++-13
71+ install : sudo apt update && sudo apt install -y gcc-13 g++-13
9072 cc : " gcc-13"
9173 cxx : " g++-13"
9274 - version : 12
9375 compiler : gcc
94- install : sudo apt update && sudo apt install -y gcc-12
76+ install : sudo apt update && sudo apt install -y gcc-12 g++-12
9577 cc : " gcc-12"
9678 cxx : " g++-12"
9779 cxx_flags : " "
@@ -102,13 +84,6 @@ jobs:
10284 version : 17
10385 - compiler : gcc
10486 version : 16
105- - compiler : gcc
106- version : 15
107- - compiler : gcc
108- version : 14
109- - compiler : clang
110- version : 14
111- stdlib : libstdc++
11287 - compiler : clang
11388 version : 13
11489 - compiler : clang
@@ -157,8 +132,87 @@ jobs:
157132 working-directory : ${{github.workspace}}/build
158133 run : ctest --output-on-failure -j $(nproc) -C ${{matrix.build_type}}
159134
160- quality_checks_pass :
135+ build_and_test_22 :
161136 runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22.04
137+ strategy :
138+ fail-fast : false
139+ matrix :
140+ compiler : [clang]
141+ version : [14, 15]
142+ cxx_standard : [20]
143+ stdlib : [libstdc++, libc++]
144+ build_type : [Debug]
145+ include :
146+ - compiler : clang
147+ cc : " clang"
148+ cxx : " clang++"
149+ cxx_flags : " -stdlib=libstdc++"
150+ - version : 15
151+ compiler : clang
152+ install : sudo apt update && sudo apt install -y clang-15
153+ toolchain_root : " /usr/lib/llvm-15"
154+ - version : 15
155+ compiler : clang
156+ stdlib : libc++
157+ install : sudo apt update && sudo apt install -y clang-15 libc++-15-dev libc++abi-15-dev
158+ cxx_flags : " -stdlib=libc++"
159+ - version : 14
160+ compiler : clang
161+ install : sudo apt update && sudo apt install -y clang-14
162+ toolchain_root : " /usr/lib/llvm-14"
163+ - version : 14
164+ compiler : clang
165+ stdlib : libc++
166+ install : sudo apt update && sudo apt install -y clang-14 libc++-14-dev libc++abi-14-dev
167+ cxx_flags : " -stdlib=libc++"
168+ exclude :
169+ - compiler : clang
170+ version : 14
171+ stdlib : libstdc++
172+
173+ steps :
174+ - uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
175+
176+ - name : Install build tools
177+ run : |
178+ ${{ matrix.install }}
179+ sudo apt install -y ninja-build
180+
181+ - name : Restore CPM cache
182+ env :
183+ cache-name : cpm-cache-0
184+ id : cpm-cache-restore
185+ uses : actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
186+ with :
187+ path : ~/cpm-cache
188+ key : ${{runner.os}}-${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
189+ restore-keys : |
190+ ${{runner.os}}-${{env.cache-name}}-
191+
192+ - name : Configure CMake
193+ env :
194+ CC : ${{matrix.toolchain_root}}/bin/${{matrix.cc}}
195+ CXX : ${{matrix.toolchain_root}}/bin/${{matrix.cxx}}
196+ run : cmake -B ${{github.workspace}}/build -DCMAKE_CXX_STANDARD=${{matrix.cxx_standard}} -DCMAKE_CXX_FLAGS_INIT=${{matrix.cxx_flags}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCPM_SOURCE_CACHE=~/cpm-cache
197+
198+ - name : Save CPM cache
199+ env :
200+ cache-name : cpm-cache-0
201+ if : steps.cpm-cache-restore.outputs.cache-hit != 'true'
202+ uses : actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
203+ with :
204+ path : ~/cpm-cache
205+ key : ${{runner.os}}-${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
206+
207+ - name : Build Unit Tests
208+ run : cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -v -t build_unit_tests
209+
210+ - name : Test
211+ working-directory : ${{github.workspace}}/build
212+ run : ctest --output-on-failure -j $(nproc) -C ${{matrix.build_type}}
213+
214+ quality_checks_pass :
215+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24.04
162216 steps :
163217 - name : Checkout target branch
164218 uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
@@ -175,16 +229,17 @@ jobs:
175229 - name : Install build tools
176230 run : |
177231 wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh ${{env.DEFAULT_LLVM_VERSION}}
178- sudo apt install -y python3-pip ninja-build clang-tidy-${{env.DEFAULT_LLVM_VERSION}} clang-format-${{env.DEFAULT_LLVM_VERSION}}
232+ sudo apt install -y pipx ninja-build clang-tidy-${{env.DEFAULT_LLVM_VERSION}} clang-format-${{env.DEFAULT_LLVM_VERSION}}
179233
180234 - name : Install cmake-format
181235 run : |
182- sudo pip3 install --upgrade pip
183- sudo pip3 install pyyaml cmake-format
236+ pipx install cmakelang
237+ pipx inject cmakelang pyyaml
238+ echo "/opt/pipx_bin" >> $GITHUB_PATH
184239
185240 - name : Install python quality tools
186241 run : |
187- sudo pip3 install mypy
242+ pipx install mypy
188243
189244 - name : Restore CPM cache
190245 env :
@@ -217,7 +272,7 @@ jobs:
217272 run : cmake --build ${{github.workspace}}/build -t ci-quality
218273
219274 sanitize :
220- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
275+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
221276 strategy :
222277 fail-fast : false
223278 matrix :
@@ -232,7 +287,7 @@ jobs:
232287 - compiler : gcc
233288 cc : " gcc-13"
234289 cxx : " g++-13"
235- install : sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt update && sudo apt install -y gcc-13 g++-13
290+ install : sudo apt update && sudo apt install -y gcc-13 g++-13
236291 toolchain_root : " /usr"
237292
238293 steps :
@@ -281,13 +336,12 @@ jobs:
281336 run : cmake --build ${{github.workspace}}/build -t unit_tests
282337
283338 valgrind :
284- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
339+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
285340 steps :
286341 - uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
287342
288343 - name : Install build tools
289344 run : |
290- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
291345 sudo apt update && sudo apt install -y gcc-${{env.DEFAULT_GCC_VERSION}} g++-${{env.DEFAULT_GCC_VERSION}} ninja-build valgrind
292346
293347 - name : Restore CPM cache
@@ -353,8 +407,8 @@ jobs:
353407 test $FAILSIZE = "0"
354408
355409 merge_ok :
356- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
357- needs : [build_and_test , quality_checks_pass, sanitize, valgrind]
410+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
411+ needs : [build_and_test_24, build_and_test_22 , quality_checks_pass, sanitize, valgrind]
358412 if : ${{ !cancelled() }}
359413 steps :
360414 - name : Enable merge
0 commit comments