@@ -22,13 +22,13 @@ concurrency:
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,6 +133,85 @@ jobs:
158
133
working-directory : ${{github.workspace}}/build
159
134
run : ctest --output-on-failure -j $(nproc) -C ${{matrix.build_type}}
160
135
136
+ build_and_test_22 :
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
+
161
215
quality_checks_pass :
162
216
runs-on : ${{ github.repository_owner == 'intel' && 'intel-' || '' }}ubuntu-22.04
163
217
steps :
0 commit comments