1515 DEFAULT_CXX_STANDARD : 20
1616 DEFAULT_LLVM_VERSION : 18
1717 DEFAULT_GCC_VERSION : 13
18- MULL_LLVM_VERSION : 15
18+ MULL_LLVM_VERSION : 17
1919
2020concurrency :
2121 group : ${{ github.head_ref || github.run_id }}
2222 cancel-in-progress : true
2323
2424jobs :
25- build_and_test :
26- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
25+ build_and_test_24 :
26+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
2727 strategy :
2828 fail-fast : false
2929 matrix :
3030 compiler : [clang, gcc]
31- version : [12, 13, 14, 15, 16, 17, 18]
31+ version : [12, 13, 16, 17, 18]
3232 cxx_standard : [17, 20]
3333 stdlib : [libstdc++, libc++]
3434 build_type : [Debug]
@@ -39,60 +39,42 @@ jobs:
3939 cxx_flags : " -stdlib=libstdc++"
4040 - version : 18
4141 compiler : clang
42- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 18
42+ install : sudo apt update && sudo apt install -y clang- 18
4343 toolchain_root : " /usr/lib/llvm-18"
4444 - version : 18
4545 compiler : clang
4646 stdlib : libc++
47- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 18 && sudo apt install -y libc++-18-dev libc++abi-18-dev
47+ install : sudo apt update && sudo apt install -y clang-18 libc++-18-dev libc++abi-18-dev
4848 cxx_flags : " -stdlib=libc++"
4949 - version : 17
5050 compiler : clang
51- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 17
51+ install : sudo apt update && sudo apt install -y clang- 17
5252 toolchain_root : " /usr/lib/llvm-17"
5353 - version : 17
5454 compiler : clang
5555 stdlib : libc++
56- 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
56+ install : sudo apt update && sudo apt install -y clang-17 libc++-17-dev libc++abi-17-dev
5757 cxx_flags : " -stdlib=libc++"
5858 - version : 16
5959 compiler : clang
60- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 16
60+ install : sudo apt update && sudo apt install -y clang- 16
6161 toolchain_root : " /usr/lib/llvm-16"
6262 - version : 16
6363 compiler : clang
6464 stdlib : libc++
65- 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
66- cxx_flags : " -stdlib=libc++"
67- - version : 15
68- compiler : clang
69- install : sudo apt update && sudo apt install -y clang-15
70- toolchain_root : " /usr/lib/llvm-15"
71- - version : 15
72- compiler : clang
73- stdlib : libc++
74- install : sudo apt update && sudo apt install -y clang-15 libc++-15-dev libc++abi-15-dev
75- cxx_flags : " -stdlib=libc++"
76- - version : 14
77- compiler : clang
78- install : sudo apt update && sudo apt install -y clang-14
79- toolchain_root : " /usr/lib/llvm-14"
80- - version : 14
81- compiler : clang
82- stdlib : libc++
83- install : sudo apt update && sudo apt install -y clang-14 libc++-14-dev libc++abi-14-dev
65+ install : sudo apt update && sudo apt install -y clang-16 libc++-16-dev libc++abi-16-dev
8466 cxx_flags : " -stdlib=libc++"
8567 - compiler : gcc
8668 toolchain_root : " /usr"
8769 cxx_flags : " "
8870 - version : 13
8971 compiler : gcc
90- install : sudo add- apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt update && sudo apt-get install -y gcc-13 g++-13
72+ install : sudo apt update && sudo apt install -y gcc-13 g++-13
9173 cc : " gcc-13"
9274 cxx : " g++-13"
9375 - version : 12
9476 compiler : gcc
95- install : sudo apt update && sudo apt install -y gcc-12
77+ install : sudo apt update && sudo apt install -y gcc-12 g++-12
9678 cc : " gcc-12"
9779 cxx : " g++-12"
9880 cxx_flags : " "
@@ -103,13 +85,6 @@ jobs:
10385 version : 17
10486 - compiler : gcc
10587 version : 16
106- - compiler : gcc
107- version : 15
108- - compiler : gcc
109- version : 14
110- - compiler : clang
111- version : 14
112- stdlib : libstdc++
11388 - compiler : clang
11489 version : 13
11590 - compiler : clang
@@ -158,8 +133,87 @@ jobs:
158133 working-directory : ${{github.workspace}}/build
159134 run : ctest --output-on-failure -j $(nproc) -C ${{matrix.build_type}}
160135
161- quality_checks_pass :
136+ build_and_test_22 :
162137 runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22.04
138+ strategy :
139+ fail-fast : false
140+ matrix :
141+ compiler : [clang]
142+ version : [14, 15]
143+ cxx_standard : [17, 20]
144+ stdlib : [libstdc++, libc++]
145+ build_type : [Debug]
146+ include :
147+ - compiler : clang
148+ cc : " clang"
149+ cxx : " clang++"
150+ cxx_flags : " -stdlib=libstdc++"
151+ - version : 15
152+ compiler : clang
153+ install : sudo apt update && sudo apt install -y clang-15
154+ toolchain_root : " /usr/lib/llvm-15"
155+ - version : 15
156+ compiler : clang
157+ stdlib : libc++
158+ install : sudo apt update && sudo apt install -y clang-15 libc++-15-dev libc++abi-15-dev
159+ cxx_flags : " -stdlib=libc++"
160+ - version : 14
161+ compiler : clang
162+ install : sudo apt update && sudo apt install -y clang-14
163+ toolchain_root : " /usr/lib/llvm-14"
164+ - version : 14
165+ compiler : clang
166+ stdlib : libc++
167+ install : sudo apt update && sudo apt install -y clang-14 libc++-14-dev libc++abi-14-dev
168+ cxx_flags : " -stdlib=libc++"
169+ exclude :
170+ - compiler : clang
171+ version : 14
172+ stdlib : libstdc++
173+
174+ steps :
175+ - uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
176+
177+ - name : Install build tools
178+ run : |
179+ ${{ matrix.install }}
180+ sudo apt install -y ninja-build
181+
182+ - name : Restore CPM cache
183+ env :
184+ cache-name : cpm-cache-0
185+ id : cpm-cache-restore
186+ uses : actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
187+ with :
188+ path : ~/cpm-cache
189+ key : ${{runner.os}}-${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
190+ restore-keys : |
191+ ${{runner.os}}-${{env.cache-name}}-
192+
193+ - name : Configure CMake
194+ env :
195+ CC : ${{matrix.toolchain_root}}/bin/${{matrix.cc}}
196+ CXX : ${{matrix.toolchain_root}}/bin/${{matrix.cxx}}
197+ 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
198+
199+ - name : Save CPM cache
200+ env :
201+ cache-name : cpm-cache-0
202+ if : steps.cpm-cache-restore.outputs.cache-hit != 'true'
203+ uses : actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
204+ with :
205+ path : ~/cpm-cache
206+ key : ${{runner.os}}-${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
207+
208+ - name : Build Unit Tests
209+ run : cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -v -t build_unit_tests
210+
211+ - name : Test
212+ working-directory : ${{github.workspace}}/build
213+ run : ctest --output-on-failure -j $(nproc) -C ${{matrix.build_type}}
214+
215+ quality_checks_pass :
216+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24.04
163217 steps :
164218 - name : Checkout target branch
165219 uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
@@ -175,13 +229,13 @@ jobs:
175229
176230 - name : Install build tools
177231 run : |
178- wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh ${{env.DEFAULT_LLVM_VERSION}}
179- sudo apt install -y python3-pip ninja-build clang-tidy-${{env.DEFAULT_LLVM_VERSION}} clang-format-${{env.DEFAULT_LLVM_VERSION}}
232+ sudo apt update && sudo apt install -y pipx ninja-build clang-tidy-${{env.DEFAULT_LLVM_VERSION}} clang-format-${{env.DEFAULT_LLVM_VERSION}}
180233
181234 - name : Install cmake-format
182235 run : |
183- sudo pip3 install --upgrade pip
184- sudo pip3 install pyyaml cmake-format
236+ pipx ensurepath
237+ pipx install cmakelang
238+ pipx inject cmakelang pyyaml
185239
186240 - name : Restore CPM cache
187241 env :
@@ -214,7 +268,7 @@ jobs:
214268 run : cmake --build ${{github.workspace}}/build -t ci-quality
215269
216270 sanitize :
217- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
271+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
218272 strategy :
219273 fail-fast : false
220274 matrix :
@@ -224,12 +278,12 @@ jobs:
224278 - compiler : clang
225279 cc : " clang"
226280 cxx : " clang++"
227- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 18
281+ install : sudo apt update && sudo apt install -y clang- 18
228282 toolchain_root : " /usr/lib/llvm-18"
229283 - compiler : gcc
230284 cc : " gcc-13"
231285 cxx : " g++-13"
232- install : sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt update && sudo apt install -y gcc-13 g++-13
286+ install : sudo apt update && sudo apt install -y gcc-13 g++-13
233287 toolchain_root : " /usr"
234288
235289 steps :
@@ -278,13 +332,12 @@ jobs:
278332 run : cmake --build ${{github.workspace}}/build -t unit_tests
279333
280334 valgrind :
281- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
335+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
282336 steps :
283337 - uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
284338
285339 - name : Install build tools
286340 run : |
287- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
288341 sudo apt update && sudo apt install -y gcc-${{env.DEFAULT_GCC_VERSION}} g++-${{env.DEFAULT_GCC_VERSION}} ninja-build valgrind
289342
290343 - name : Restore CPM cache
@@ -350,21 +403,20 @@ jobs:
350403 test $FAILSIZE = "0"
351404
352405 mutate :
353- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
406+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
354407 steps :
355408 - uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
356409
357410 - name : Install build tools
358411 run : |
359- wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh ${{env.MULL_LLVM_VERSION}}
360- sudo apt install -y ninja-build
412+ sudo apt update && sudo apt install -y clang-${{env.MULL_LLVM_VERSION}} ninja-build
361413
362414 - name : Install mull
363415 env :
364416 MULL_VERSION : 0.23.0
365417 run : |
366- wget https://github.com/mull-project/mull/releases/download/${{env.MULL_VERSION}}/Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.0-ubuntu-22 .04.deb
367- sudo dpkg -i Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.0-ubuntu-22 .04.deb
418+ wget https://github.com/mull-project/mull/releases/download/${{env.MULL_VERSION}}/Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.0-ubuntu-24 .04.deb
419+ sudo dpkg -i Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.0-ubuntu-24 .04.deb
368420
369421 - name : Restore CPM cache
370422 env :
@@ -397,7 +449,7 @@ jobs:
397449
398450 merge_ok :
399451 runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22.04
400- needs : [build_and_test , quality_checks_pass, sanitize, valgrind]
452+ needs : [build_and_test_24, build_and_test_22 , quality_checks_pass, sanitize, valgrind]
401453 if : ${{ !cancelled() }}
402454 steps :
403455 - name : Enable merge
0 commit comments