@@ -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]
@@ -47,51 +47,33 @@ jobs:
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
@@ -175,16 +229,17 @@ jobs:
175
229
- name : Install build tools
176
230
run : |
177
231
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}}
179
233
180
234
- name : Install cmake-format
181
235
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
184
239
185
240
- name : Install python quality tools
186
241
run : |
187
- sudo pip3 install mypy
242
+ pipx install mypy
188
243
189
244
- name : Restore CPM cache
190
245
env :
@@ -217,7 +272,7 @@ jobs:
217
272
run : cmake --build ${{github.workspace}}/build -t ci-quality
218
273
219
274
sanitize :
220
- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
275
+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
221
276
strategy :
222
277
fail-fast : false
223
278
matrix :
@@ -232,7 +287,7 @@ jobs:
232
287
- compiler : gcc
233
288
cc : " gcc-13"
234
289
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
236
291
toolchain_root : " /usr"
237
292
238
293
steps :
@@ -281,13 +336,12 @@ jobs:
281
336
run : cmake --build ${{github.workspace}}/build -t unit_tests
282
337
283
338
valgrind :
284
- runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22 .04
339
+ runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-24 .04
285
340
steps :
286
341
- uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
287
342
288
343
- name : Install build tools
289
344
run : |
290
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
291
345
sudo apt update && sudo apt install -y gcc-${{env.DEFAULT_GCC_VERSION}} g++-${{env.DEFAULT_GCC_VERSION}} ninja-build valgrind
292
346
293
347
- name : Restore CPM cache
@@ -353,8 +407,8 @@ jobs:
353
407
test $FAILSIZE = "0"
354
408
355
409
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]
358
412
if : ${{ !cancelled() }}
359
413
steps :
360
414
- name : Enable merge
0 commit comments