@@ -15,20 +15,26 @@ jobs:
15
15
CC : gcc-14
16
16
CXX : g++-14
17
17
steps :
18
- - checkout
18
+ - run : |
19
+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|[email protected] :|https://github.com/|g"`
20
+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
19
21
- run : |
20
22
sudo apt-add-repository -y universe
21
23
sudo apt-get install -y gcc-14 g++-14
22
- sudo apt-get install -y autoconf automake libtool
24
+ sudo apt-get install -y cmake
23
25
sudo apt-get install -y hwloc libhwloc-dev
24
26
- run : |
25
- ./autogen.sh
26
- ./configure --enable-picky --with-scheduler=<< parameters.scheduler >> --with-topology=<< parameters.topology >>
27
- make -j2
28
- make tests -j2
27
+ mkdir build
28
+ pushd build
29
+ cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
30
+ make -j2 VERBOSE=1
31
+ popd
29
32
- run :
30
- command : timeout --foreground -k 10s 2m make check
31
- no_output_timeout : 60s
33
+ command : |
34
+ pushd build
35
+ CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 2m make test VERBOSE=1
36
+ popd
37
+ no_output_timeout : 180s
32
38
33
39
arm_clang :
34
40
parameters :
@@ -43,23 +49,29 @@ jobs:
43
49
CC : clang-19
44
50
CXX : clang++-19
45
51
steps :
46
- - checkout
52
+ - run : |
53
+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|[email protected] :|https://github.com/|g"`
54
+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
47
55
- run : |
48
56
sudo apt-add-repository -y universe
49
57
sudo apt-get install -y gcc-14 g++-14
50
- sudo apt-get install -y autoconf automake libtool
58
+ sudo apt-get install -y cmake
51
59
sudo apt-get install -y hwloc libhwloc-dev
52
60
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
53
61
sudo apt-add-repository -y 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main'
54
62
sudo apt-get install -y clang-19
55
63
- run : |
56
- ./autogen.sh
57
- ./configure --enable-picky --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
58
- make -j2
59
- make tests -j2
64
+ mkdir build
65
+ pushd build
66
+ cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
67
+ make -j2 VERBOSE=1
68
+ popd
60
69
- run :
61
- command : timeout --foreground -k 10s 2m make check
62
- no_output_timeout : 60s
70
+ command : |
71
+ pushd build
72
+ CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 2m make test VERBOSE=1
73
+ popd
74
+ no_output_timeout : 180s
63
75
64
76
arm_sanitizers :
65
77
parameters :
@@ -81,23 +93,29 @@ jobs:
81
93
QTHREAD_STACK_SIZE : 524288
82
94
ASAN_OPTIONS : " check_initialization_order=1"
83
95
steps :
84
- - checkout
96
+ - run : |
97
+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|[email protected] :|https://github.com/|g"`
98
+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
85
99
- run : |
86
100
sudo apt-add-repository -y universe
87
101
sudo apt-get install -y gcc-14 g++-14
88
- sudo apt-get install -y autoconf automake libtool
102
+ sudo apt-get install -y cmake
89
103
sudo apt-get install -y hwloc libhwloc-dev
90
104
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
91
105
sudo apt-add-repository -y 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main'
92
106
sudo apt-get install -y clang-19
93
107
- run : |
94
- ./autogen.sh
95
- ./configure --enable-picky --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
96
- make -j2
97
- make tests -j2
108
+ mkdir build
109
+ pushd build
110
+ cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
111
+ make -j2 VERBOSE=1
112
+ popd
98
113
- run :
99
- command : timeout --foreground -k 10s 4m make check
100
- no_output_timeout : 120s
114
+ command : |
115
+ pushd build
116
+ if [[ "<< parameters.sanitizer >>" == "thread" ]]; then cd test/basics; fi
117
+ CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 4m make test VERBOSE=1
118
+ no_output_timeout : 180s
101
119
102
120
arm_acfl :
103
121
parameters :
@@ -112,30 +130,85 @@ jobs:
112
130
CC : armclang
113
131
CXX : armclang++
114
132
steps :
115
- - checkout
116
133
- run : |
134
+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|[email protected] :|https://github.com/|g"`
135
+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
136
+ - run : |
137
+ # Set up apt to get a more recent CMake directly from Kitware.
138
+ wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
139
+ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
117
140
sudo apt-get update -y
118
- sudo apt-get install -y autoconf automake libtool
141
+ sudo apt-get install -y cmake
119
142
sudo apt-get install -y hwloc libhwloc-dev
120
- wget -O acfl.tar https://developer.arm.com/-/media/Files/ downloads/hpc/arm-compiler -for-linux/24-04 /arm-compiler-for-linux_24.04_Ubuntu -22.04_aarch64.tar
143
+ wget -O acfl.tar https://developer.arm.com/-/cdn- downloads/permalink/Arm-Compiler -for-Linux/Version_24.10.1 /arm-compiler-for-linux_24.10.1_Ubuntu -22.04_aarch64.tar
121
144
tar -vxf acfl.tar
122
- ./arm-compiler-for-linux_24.04_Ubuntu-22.04/arm-compiler-for-linux_24.04_Ubuntu-22.04.sh -a -f -s acfl
145
+ ls
146
+ ls arm-compiler-for-linux_24.10.1_Ubuntu-22.04
147
+ ./arm-compiler-for-linux_24.10.1_Ubuntu-22.04/arm-compiler-for-linux_24.10.1_Ubuntu-22.04.sh -a -f -s acfl
123
148
rm acfl.tar
124
- sudo apt install -y ./acfl/gcc-13.2.0_Ubuntu-22.04.deb ./acfl/arm-linux-compiler-24.04_Ubuntu-22.04.deb
149
+ ls acfl
150
+ sudo apt install -y ./acfl/gcc-14.2.0_Ubuntu-22.04.deb ./acfl/arm-linux-compiler-24.10.1_Ubuntu-22.04.deb
125
151
rm -rf acfl
126
- export PATH=$PATH:/opt/arm/arm-linux-compiler-24.04_Ubuntu -22.04/bin
152
+ export PATH=$PATH:/opt/arm/arm-linux-compiler-24.10.1_Ubuntu -22.04/bin
127
153
armclang -v
128
154
- run : |
129
- export PATH=$PATH:/opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin
130
- ./autogen.sh
131
- ./configure --enable-picky --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
132
- make -j2
133
- make tests -j2
155
+ export PATH=$PATH:/opt/arm/arm-linux-compiler-24.10.1_Ubuntu-22.04/bin
156
+ mkdir build
157
+ pushd build
158
+ cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
159
+ make -j2 VERBOSE=1
160
+ popd
134
161
- run :
135
162
command : |
136
- export PATH=$PATH:/opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin
137
- timeout --foreground -k 10s 4m make check
138
- no_output_timeout : 60s
163
+ export PATH=$PATH:/opt/arm/arm-linux-compiler-24.10.1_Ubuntu-22.04/bin
164
+ pushd build
165
+ CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 4m make test VERBOSE=1
166
+ popd
167
+ no_output_timeout : 180s
168
+
169
+ nvc :
170
+ parameters :
171
+ worker_type :
172
+ type : string
173
+ scheduler :
174
+ type : string
175
+ topology :
176
+ type : string
177
+ machine :
178
+ image : ubuntu-2404:edge
179
+ resource_class : << parameters.worker_type >>
180
+ environment :
181
+ CC : nvc
182
+ CXX : nvc++
183
+ steps :
184
+ - run : |
185
+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|[email protected] :|https://github.com/|g"`
186
+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
187
+ - run : |
188
+ curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg
189
+ export MACHINE_TYPE=`uname -m`
190
+ if [ ${MACHINE_TYPE} == 'x86_64' ]; then echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list; fi
191
+ if [ ${MACHINE_TYPE} == 'aarch64' ]; then echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/arm64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list; fi
192
+ sudo apt-get update -y
193
+ sudo apt-get install -y nvhpc-24-9
194
+ sudo apt-get install -y cmake
195
+ sudo apt-get install -y hwloc libhwloc-dev
196
+ - run : |
197
+ export MACHINE_TYPE=`uname -m`
198
+ if [ ${MACHINE_TYPE} == 'x86_64' ]; then export PATH="$PATH:/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/compilers/bin"; fi
199
+ if [ ${MACHINE_TYPE} == 'aarch64' ]; then export PATH="$PATH:/opt/nvidia/hpc_sdk/Linux_aarch64/24.9/compilers/bin"; fi
200
+ nvc --version
201
+ mkdir build
202
+ pushd build
203
+ cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
204
+ make -j2 VERBOSE=1
205
+ popd
206
+ - run :
207
+ command : |
208
+ pushd build
209
+ CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 4m make test VERBOSE=1
210
+ popd
211
+ no_output_timeout : 180s
139
212
140
213
musl :
141
214
parameters :
@@ -145,21 +218,32 @@ jobs:
145
218
type : string
146
219
topology :
147
220
type : string
221
+ compiler :
222
+ type : string
148
223
docker :
149
224
- image : alpine:latest
150
225
resource_class : << parameters.worker_type >>
151
226
steps :
152
- - checkout
153
227
- run : |
154
- apk add --no-cache --no-progress bash make musl-dev hwloc-dev libtool autoconf automake gcc g++
228
+ apk add --no-cache --no-progress git
229
+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|[email protected] :|https://github.com/|g"`
230
+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
231
+ - run : |
232
+ apk add --no-cache --no-progress bash make musl-dev hwloc-dev cmake gcc g++
233
+ if [ "<< parameters.compiler >>" == "clang" ]; then apk add clang; fi
155
234
- run : |
156
- bash autogen.sh
157
- bash configure --enable-picky --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
158
- make -j2
159
- make tests -j2
235
+ if [ "<< parameters.compiler >>" == "clang" ]; then export CC=clang && export CXX=clang++; fi
236
+ mkdir build
237
+ cd build
238
+ cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
239
+ make -j2 VERBOSE=1
240
+ cd ..
160
241
- run :
161
- command : make check
162
- no_output_timeout : 60s
242
+ command : |
243
+ cd build
244
+ CTEST_OUTPUT_ON_FAILURE=1 make test VERBOSE=1
245
+ cd ..
246
+ no_output_timeout : 180s
163
247
164
248
workflows :
165
249
build_and_test :
@@ -180,15 +264,124 @@ workflows:
180
264
scheduler : [nemesis, sherwood, distrib]
181
265
topology : ['no', binders, hwloc]
182
266
sanitizer : [address, memory, thread, undefined]
267
+ exclude :
268
+ - scheduler : nemesis
269
+ topology : binders
270
+ sanitizer : memory
271
+ - scheduler : sherwood
272
+ topology : binders
273
+ sanitizer : memory
274
+ - scheduler : distrib
275
+ topology : binders
276
+ sanitizer : memory
277
+ - scheduler : nemesis
278
+ topology : hwloc
279
+ sanitizer : memory
280
+ - scheduler : sherwood
281
+ topology : hwloc
282
+ sanitizer : memory
283
+ - scheduler : distrib
284
+ topology : hwloc
285
+ sanitizer : memory
286
+ - scheduler : sherwood
287
+ topology : ' no'
288
+ sanitizer : thread
289
+ - scheduler : sherwood
290
+ topology : hwloc
291
+ sanitizer : thread
292
+ - scheduler : sherwood
293
+ topology : binders
294
+ sanitizer : thread
295
+ - scheduler : distrib
296
+ topology : ' no'
297
+ sanitizer : thread
298
+ - scheduler : distrib
299
+ topology : hwloc
300
+ sanitizer : thread
301
+ - scheduler : distrib
302
+ topology : binders
303
+ sanitizer : thread
183
304
- arm_acfl :
184
305
matrix :
185
306
parameters :
186
307
scheduler : [nemesis, sherwood, distrib]
187
308
topology : ['no', binders, hwloc]
309
+ - nvc :
310
+ matrix :
311
+ parameters :
312
+ worker_type : [medium, arm.medium]
313
+ scheduler : [nemesis, sherwood, distrib]
314
+ topology : ['no', binders, hwloc]
188
315
- musl :
189
316
matrix :
190
317
parameters :
191
318
worker_type : [medium, arm.medium]
192
319
scheduler : [nemesis, sherwood, distrib]
193
320
topology : ['no', binders, hwloc]
321
+ compiler : [clang, gcc]
322
+ exclude :
323
+ - worker_type : medium
324
+ scheduler : sherwood
325
+ topology : binders
326
+ compiler : gcc
327
+ - worker_type : medium
328
+ scheduler : sherwood
329
+ topology : hwloc
330
+ compiler : gcc
331
+ - worker_type : medium
332
+ scheduler : distrib
333
+ topology : binders
334
+ compiler : gcc
335
+ - worker_type : medium
336
+ scheduler : distrib
337
+ topology : hwloc
338
+ compiler : gcc
339
+ - worker_type : arm.medium
340
+ scheduler : sherwood
341
+ topology : binders
342
+ compiler : gcc
343
+ - worker_type : arm.medium
344
+ scheduler : sherwood
345
+ topology : hwloc
346
+ compiler : gcc
347
+ - worker_type : arm.medium
348
+ scheduler : distrib
349
+ topology : binders
350
+ compiler : gcc
351
+ - worker_type : arm.medium
352
+ scheduler : distrib
353
+ topology : hwloc
354
+ compiler : gcc
355
+ - worker_type : medium
356
+ scheduler : sherwood
357
+ topology : binders
358
+ compiler : clang
359
+ - worker_type : medium
360
+ scheduler : sherwood
361
+ topology : hwloc
362
+ compiler : clang
363
+ - worker_type : medium
364
+ scheduler : distrib
365
+ topology : binders
366
+ compiler : clang
367
+ - worker_type : medium
368
+ scheduler : distrib
369
+ topology : hwloc
370
+ compiler : clang
371
+ - worker_type : arm.medium
372
+ scheduler : sherwood
373
+ topology : binders
374
+ compiler : clang
375
+ - worker_type : arm.medium
376
+ scheduler : sherwood
377
+ topology : hwloc
378
+ compiler : clang
379
+ - worker_type : arm.medium
380
+ scheduler : distrib
381
+ topology : binders
382
+ compiler : clang
383
+ - worker_type : arm.medium
384
+ scheduler : distrib
385
+ topology : hwloc
386
+ compiler : clang
194
387
0 commit comments