@@ -21,13 +21,13 @@ concurrency:
21
21
cancel-in-progress : true
22
22
23
23
jobs :
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
26
26
strategy :
27
27
fail-fast : false
28
28
matrix :
29
29
compiler : [clang, gcc]
30
- version : [12, 13, 14, 15, 16, 17, 18]
30
+ version : [12, 13, 16, 17, 18]
31
31
cxx_standard : [20]
32
32
stdlib : [libstdc++, libc++]
33
33
build_type : [Debug]
@@ -38,60 +38,42 @@ jobs:
38
38
cxx_flags : " -stdlib=libstdc++"
39
39
- version : 18
40
40
compiler : clang
41
- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 18
41
+ install : sudo apt update && sudo apt install -y clang- 18
42
42
toolchain_root : " /usr/lib/llvm-18"
43
43
- version : 18
44
44
compiler : clang
45
45
stdlib : libc++
46
- 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
46
+ install : sudo apt update && sudo apt install -y clang-18 libc++-18-dev libc++abi-18-dev
47
47
cxx_flags : " -stdlib=libc++"
48
48
- version : 17
49
49
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
51
51
toolchain_root : " /usr/lib/llvm-17"
52
52
- version : 17
53
53
compiler : clang
54
54
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
56
56
cxx_flags : " -stdlib=libc++"
57
57
- version : 16
58
58
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
60
60
toolchain_root : " /usr/lib/llvm-16"
61
61
- version : 16
62
62
compiler : clang
63
63
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
83
65
cxx_flags : " -stdlib=libc++"
84
66
- compiler : gcc
85
67
toolchain_root : " /usr"
86
68
cxx_flags : " "
87
69
- version : 13
88
70
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
90
72
cc : " gcc-13"
91
73
cxx : " g++-13"
92
74
- version : 12
93
75
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
95
77
cc : " gcc-12"
96
78
cxx : " g++-12"
97
79
cxx_flags : " "
@@ -102,13 +84,6 @@ jobs:
102
84
version : 17
103
85
- compiler : gcc
104
86
version : 16
105
- - compiler : gcc
106
- version : 15
107
- - compiler : gcc
108
- version : 14
109
- - compiler : clang
110
- version : 14
111
- stdlib : libstdc++
112
87
- compiler : clang
113
88
version : 13
114
89
- compiler : clang
@@ -157,8 +132,87 @@ jobs:
157
132
working-directory : ${{github.workspace}}/build
158
133
run : ctest --output-on-failure -j $(nproc) -C ${{matrix.build_type}}
159
134
160
- quality_checks_pass :
135
+ build_and_test_22 :
161
136
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
162
216
steps :
163
217
- name : Checkout target branch
164
218
uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
@@ -174,17 +228,17 @@ jobs:
174
228
175
229
- name : Install build tools
176
230
run : |
177
- 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}}
231
+ sudo apt install -y pipx ninja-build clang-tidy-${{env.DEFAULT_LLVM_VERSION}} clang-format-${{env.DEFAULT_LLVM_VERSION}}
179
232
180
233
- name : Install cmake-format
181
234
run : |
182
- sudo pip3 install --upgrade pip
183
- sudo pip3 install pyyaml cmake-format
235
+ pipx install cmakelang
236
+ pipx inject cmakelang pyyaml
237
+ echo "/opt/pipx_bin" >> $GITHUB_PATH
184
238
185
239
- name : Install python quality tools
186
240
run : |
187
- sudo pip3 install mypy
241
+ pipx install mypy
188
242
189
243
- name : Restore CPM cache
190
244
env :
@@ -217,7 +271,7 @@ jobs:
217
271
run : cmake --build ${{github.workspace}}/build -t ci-quality
218
272
219
273
sanitize :
220
- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
274
+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
221
275
strategy :
222
276
fail-fast : false
223
277
matrix :
@@ -227,12 +281,12 @@ jobs:
227
281
- compiler : clang
228
282
cc : " clang"
229
283
cxx : " clang++"
230
- install : wget https:// apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 18
284
+ install : sudo apt update && sudo apt install -y clang- 18
231
285
toolchain_root : " /usr/lib/llvm-18"
232
286
- compiler : gcc
233
287
cc : " gcc-13"
234
288
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
289
+ install : sudo apt update && sudo apt install -y gcc-13 gc ++-13
236
290
toolchain_root : " /usr"
237
291
238
292
steps :
@@ -281,13 +335,12 @@ jobs:
281
335
run : cmake --build ${{github.workspace}}/build -t unit_tests
282
336
283
337
valgrind :
284
- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
338
+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
285
339
steps :
286
340
- uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
287
341
288
342
- name : Install build tools
289
343
run : |
290
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
291
344
sudo apt update && sudo apt install -y gcc-${{env.DEFAULT_GCC_VERSION}} g++-${{env.DEFAULT_GCC_VERSION}} ninja-build valgrind
292
345
293
346
- name : Restore CPM cache
@@ -353,8 +406,8 @@ jobs:
353
406
test $FAILSIZE = "0"
354
407
355
408
merge_ok :
356
- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
357
- needs : [build_and_test , quality_checks_pass, sanitize, valgrind]
409
+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
410
+ needs : [build_and_test_24, build_and_test_22 , quality_checks_pass, sanitize, valgrind]
358
411
if : ${{ !cancelled() }}
359
412
steps :
360
413
- name : Enable merge
0 commit comments