@@ -15,20 +15,26 @@ jobs:
1515 CC : gcc-14
1616 CXX : g++-14
1717 steps :
18- - checkout
18+ - run : |
19+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|git@github.com:|https://github.com/|g"`
20+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
1921 - run : |
2022 sudo apt-add-repository -y universe
2123 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
2325 sudo apt-get install -y hwloc libhwloc-dev
2426 - 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
2932 - 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
3238
3339 arm_clang :
3440 parameters :
@@ -43,23 +49,29 @@ jobs:
4349 CC : clang-19
4450 CXX : clang++-19
4551 steps :
46- - checkout
52+ - run : |
53+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|git@github.com:|https://github.com/|g"`
54+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
4755 - run : |
4856 sudo apt-add-repository -y universe
4957 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
5159 sudo apt-get install -y hwloc libhwloc-dev
5260 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
5361 sudo apt-add-repository -y 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main'
5462 sudo apt-get install -y clang-19
5563 - 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
6069 - 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
6375
6476 arm_sanitizers :
6577 parameters :
@@ -81,23 +93,29 @@ jobs:
8193 QTHREAD_STACK_SIZE : 524288
8294 ASAN_OPTIONS : " check_initialization_order=1"
8395 steps :
84- - checkout
96+ - run : |
97+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|git@github.com:|https://github.com/|g"`
98+ git clone -b "$CIRCLE_BRANCH" "$REPO_HTTPS" . --depth=1
8599 - run : |
86100 sudo apt-add-repository -y universe
87101 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
89103 sudo apt-get install -y hwloc libhwloc-dev
90104 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
91105 sudo apt-add-repository -y 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main'
92106 sudo apt-get install -y clang-19
93107 - 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
98113 - 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
101119
102120 arm_acfl :
103121 parameters :
@@ -112,30 +130,85 @@ jobs:
112130 CC : armclang
113131 CXX : armclang++
114132 steps :
115- - checkout
116133 - run : |
134+ export REPO_HTTPS=`echo "$CIRCLE_REPOSITORY_URL" | sed "s|git@github.com:|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
117140 sudo apt-get update -y
118- sudo apt-get install -y autoconf automake libtool
141+ sudo apt-get install -y cmake
119142 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
121144 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
123148 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
125151 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
127153 armclang -v
128154 - 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
134161 - run :
135162 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|git@github.com:|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
139212
140213 musl :
141214 parameters :
@@ -145,21 +218,32 @@ jobs:
145218 type : string
146219 topology :
147220 type : string
221+ compiler :
222+ type : string
148223 docker :
149224 - image : alpine:latest
150225 resource_class : << parameters.worker_type >>
151226 steps :
152- - checkout
153227 - 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|git@github.com:|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
155234 - 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 ..
160241 - 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
163247
164248workflows :
165249 build_and_test :
@@ -180,15 +264,124 @@ workflows:
180264 scheduler : [nemesis, sherwood, distrib]
181265 topology : ['no', binders, hwloc]
182266 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
183304 - arm_acfl :
184305 matrix :
185306 parameters :
186307 scheduler : [nemesis, sherwood, distrib]
187308 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]
188315 - musl :
189316 matrix :
190317 parameters :
191318 worker_type : [medium, arm.medium]
192319 scheduler : [nemesis, sherwood, distrib]
193320 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
194387
0 commit comments