15
15
DEFAULT_CXX_STANDARD : 20
16
16
DEFAULT_LLVM_VERSION : 18
17
17
DEFAULT_GCC_VERSION : 13
18
- MULL_LLVM_VERSION : 15
18
+ MULL_LLVM_VERSION : 17
19
19
20
20
concurrency :
21
21
group : ${{ github.head_ref || github.run_id }}
22
22
cancel-in-progress : true
23
23
24
24
jobs :
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
27
27
strategy :
28
28
fail-fast : false
29
29
matrix :
30
30
compiler : [clang, gcc]
31
- version : [12, 13, 14, 15, 16, 17, 18]
31
+ version : [12, 13, 16, 17, 18]
32
32
cxx_standard : [17, 20]
33
33
stdlib : [libstdc++, libc++]
34
34
build_type : [Debug]
@@ -39,60 +39,42 @@ jobs:
39
39
cxx_flags : " -stdlib=libstdc++"
40
40
- version : 18
41
41
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
43
43
toolchain_root : " /usr/lib/llvm-18"
44
44
- version : 18
45
45
compiler : clang
46
46
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
48
48
cxx_flags : " -stdlib=libc++"
49
49
- version : 17
50
50
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
52
52
toolchain_root : " /usr/lib/llvm-17"
53
53
- version : 17
54
54
compiler : clang
55
55
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
57
57
cxx_flags : " -stdlib=libc++"
58
58
- version : 16
59
59
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
61
61
toolchain_root : " /usr/lib/llvm-16"
62
62
- version : 16
63
63
compiler : clang
64
64
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
84
66
cxx_flags : " -stdlib=libc++"
85
67
- compiler : gcc
86
68
toolchain_root : " /usr"
87
69
cxx_flags : " "
88
70
- version : 13
89
71
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
91
73
cc : " gcc-13"
92
74
cxx : " g++-13"
93
75
- version : 12
94
76
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
96
78
cc : " gcc-12"
97
79
cxx : " g++-12"
98
80
cxx_flags : " "
@@ -103,13 +85,6 @@ jobs:
103
85
version : 17
104
86
- compiler : gcc
105
87
version : 16
106
- - compiler : gcc
107
- version : 15
108
- - compiler : gcc
109
- version : 14
110
- - compiler : clang
111
- version : 14
112
- stdlib : libstdc++
113
88
- compiler : clang
114
89
version : 13
115
90
- compiler : clang
@@ -158,8 +133,87 @@ jobs:
158
133
working-directory : ${{github.workspace}}/build
159
134
run : ctest --output-on-failure -j $(nproc) -C ${{matrix.build_type}}
160
135
161
- quality_checks_pass :
136
+ build_and_test_22 :
162
137
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
163
217
steps :
164
218
- name : Checkout target branch
165
219
uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
@@ -175,13 +229,12 @@ jobs:
175
229
176
230
- name : Install build tools
177
231
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}}
180
233
181
234
- name : Install cmake-format
182
235
run : |
183
- sudo pip3 install --upgrade pip
184
- sudo pip3 install pyyaml cmake-format
236
+ pipx install cmakelang
237
+ pipx inject cmakelang pyyaml
185
238
186
239
- name : Restore CPM cache
187
240
env :
@@ -214,7 +267,7 @@ jobs:
214
267
run : cmake --build ${{github.workspace}}/build -t ci-quality
215
268
216
269
sanitize :
217
- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
270
+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
218
271
strategy :
219
272
fail-fast : false
220
273
matrix :
@@ -224,12 +277,12 @@ jobs:
224
277
- compiler : clang
225
278
cc : " clang"
226
279
cxx : " clang++"
227
- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 18
280
+ install : sudo apt update && sudo apt install -y clang- 18
228
281
toolchain_root : " /usr/lib/llvm-18"
229
282
- compiler : gcc
230
283
cc : " gcc-13"
231
284
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
285
+ install : sudo apt update && sudo apt install -y gcc-13 g++-13
233
286
toolchain_root : " /usr"
234
287
235
288
steps :
@@ -278,13 +331,12 @@ jobs:
278
331
run : cmake --build ${{github.workspace}}/build -t unit_tests
279
332
280
333
valgrind :
281
- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
334
+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
282
335
steps :
283
336
- uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
284
337
285
338
- name : Install build tools
286
339
run : |
287
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
288
340
sudo apt update && sudo apt install -y gcc-${{env.DEFAULT_GCC_VERSION}} g++-${{env.DEFAULT_GCC_VERSION}} ninja-build valgrind
289
341
290
342
- name : Restore CPM cache
@@ -350,21 +402,20 @@ jobs:
350
402
test $FAILSIZE = "0"
351
403
352
404
mutate :
353
- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
405
+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
354
406
steps :
355
407
- uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
356
408
357
409
- name : Install build tools
358
410
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
411
+ sudo apt update && sudo apt install -y clang-${{env.MULL_LLVM_VERSION}} ninja-build
361
412
362
413
- name : Install mull
363
414
env :
364
415
MULL_VERSION : 0.23.0
365
416
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
417
+ 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
418
+ sudo dpkg -i Mull-${{env.MULL_LLVM_VERSION}}-${{env.MULL_VERSION}}-LLVM-${{env.MULL_LLVM_VERSION}}.0-ubuntu-24 .04.deb
368
419
369
420
- name : Restore CPM cache
370
421
env :
@@ -397,7 +448,7 @@ jobs:
397
448
398
449
merge_ok :
399
450
runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22.04
400
- needs : [build_and_test , quality_checks_pass, sanitize, valgrind]
451
+ needs : [build_and_test_24, build_and_test_22 , quality_checks_pass, sanitize, valgrind]
401
452
if : ${{ !cancelled() }}
402
453
steps :
403
454
- name : Enable merge
0 commit comments