@@ -44,10 +44,11 @@ jobs:
44
44
45
45
linux-clang :
46
46
runs-on : ubuntu-24.04
47
+ container : ubuntu:25.04
47
48
continue-on-error : true
48
49
strategy :
49
50
matrix :
50
- clang_version : [14, 15, 16, 17, 18, 19]
51
+ clang_version : [14, 15, 16, 17, 18, 19, 20 ]
51
52
scheduler : [nemesis, sherwood, distrib]
52
53
topology : [hwloc, binders, no]
53
54
include :
@@ -63,18 +64,26 @@ jobs:
63
64
gcc_version : 13
64
65
- clang_version : 19
65
66
gcc_version : 14
67
+ - clang_version : 20
68
+ gcc_version : 15
66
69
env :
67
70
CC : clang-${{ matrix.clang_version }}
68
71
CXX : clang++-${{ matrix.clang_version }}
69
72
steps :
70
73
- uses : actions/checkout@v4
74
+ - name : container prerequisites
75
+ run : |
76
+ # some additional setup steps are only needed when running in a container.
77
+ # These end up being no-ops in the github actions images.
78
+ apt-get update
79
+ apt-get install -y sudo wget software-properties-common cmake
71
80
- name : install gcc
72
- run : sudo apt-get install gcc-${{ matrix.gcc_version }} g++-${{ matrix.gcc_version }}
81
+ run : sudo apt-get install -y gcc-${{ matrix.gcc_version }} g++-${{ matrix.gcc_version }}
73
82
- name : install clang
74
- run : sudo apt-get install clang-${{ matrix.clang_version }}
83
+ run : sudo apt-get install -y clang-${{ matrix.clang_version }}
75
84
- if : ${{ matrix.topology != 'no' }}
76
85
run : |
77
- sudo apt-get install hwloc libhwloc-dev
86
+ sudo apt-get install -y hwloc libhwloc-dev
78
87
hwloc-ls --version
79
88
- name : build qthreads
80
89
run : |
@@ -281,30 +290,31 @@ jobs:
281
290
- sanitizer : thread
282
291
topology : binders
283
292
env :
284
- CC : clang-20
285
- CXX : clang++-20
293
+ CC : clang-21
294
+ CXX : clang++-21
286
295
CFLAGS : " -fsanitize=${{ matrix.sanitizer }} -fno-sanitize-recover=all"
287
296
CXXFLAGS : ${{ matrix.use_libcxx && format('-stdlib=libc++ -fsanitize={0} -fno-sanitize-recover=all', matrix.sanitizer) || format('-fsanitize={0} -fno-sanitize-recover=all', matrix.sanitizer) }}
288
297
LDFLAGS : " -fsanitize=${{ matrix.sanitizer }} -fno-sanitize-recover=all"
289
298
QTHREAD_STACK_SIZE : 2097152
290
299
ASAN_OPTIONS : " check_initialization_order=1"
291
300
steps :
292
301
- uses : actions/checkout@v4
293
- - if : ${{ ! matrix.use_libcxx }}
302
+ - name : container prerequisites
294
303
run : |
304
+ # some additional setup steps are only needed when running in a container.
305
+ # These end up being no-ops in the github actions images.
295
306
apt-get update
296
- apt-get install -y sudo # Updating and installing sudo is only neccesary in a container.
297
- # Installing sudo is just so that the later commands using sudo can be the same whether in a container or not.
307
+ apt-get install -y sudo wget software-properties-common cmake
308
+ - if : ${{ ! matrix.use_libcxx }}
309
+ run : |
298
310
sudo apt-get install -y gcc-15 g++-15
299
- sudo apt-get install -y cmake # Only needed in a container. Cmake is installed by default on VM images.
300
311
- name : install compiler
301
312
run : |
302
- sudo apt-get install -y software-properties-common # Only needed in container.
303
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1
304
- sudo apt-add-repository 'deb https://apt.llvm.org/oracular/ llvm-toolchain-oracular-20 main' && break || sleep 1
305
- sudo apt-get install -y clang-20
313
+ wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
314
+ sudo apt-add-repository 'deb https://apt.llvm.org/plucky/ llvm-toolchain-plucky-21 main' && break || sleep 1
315
+ sudo apt-get install -y clang-21
306
316
- if : ${{ matrix.use_libcxx }}
307
- run : sudo apt-get install -y libc++-20 -dev libc++abi-20 -dev
317
+ run : sudo apt-get install -y libc++-21 -dev libc++abi-21 -dev
308
318
- if : ${{ matrix.topology != 'no' }}
309
319
run : |
310
320
sudo apt-get install -y hwloc libhwloc-dev
@@ -337,26 +347,27 @@ jobs:
337
347
- compiler : gcc
338
348
use_libcxx : true
339
349
env :
340
- CC : ${{ matrix.compiler == 'gcc' && 'gcc-15' || 'clang-20 ' }}
341
- CXX : ${{ matrix.compiler == 'gcc' && 'g++-15' || 'clang++-20 ' }}
350
+ CC : ${{ matrix.compiler == 'gcc' && 'gcc-15' || 'clang-21 ' }}
351
+ CXX : ${{ matrix.compiler == 'gcc' && 'g++-15' || 'clang++-21 ' }}
342
352
CXXFLAGS : ${{ matrix.use_libcxx && '-stdlib=libc++' || '' }}
343
353
QTHREADS_ENABLE_ASSERTS : ${{ matrix.use_asserts && '--enable-asserts' || '' }}
344
354
steps :
345
355
- uses : actions/checkout@v4
346
- - run : |
356
+ - name : container prerequisites
357
+ run : |
358
+ # some additional setup steps are only needed when running in a container.
359
+ # These end up being no-ops in the github actions images.
347
360
apt-get update
348
- apt-get install -y sudo # Updating and installing sudo is only neccesary in a container.
349
- # Installing sudo is just so that the later commands using sudo can be the same whether in a container or not.
361
+ apt-get install -y sudo wget software-properties-common cmake
362
+ - run : |
350
363
sudo apt-get install -y gcc-15 g++-15
351
- sudo apt-get install -y cmake # Only needed in a container. Cmake is installed by default on VM images.
352
364
- if : ${{ matrix.compiler == 'clang' }}
353
365
run : |
354
- sudo apt-get install -y software-properties-common # Only needed in container.
355
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1
356
- sudo apt-add-repository 'deb https://apt.llvm.org/oracular/ llvm-toolchain-oracular-20 main' && break || sleep 1
357
- sudo apt-get install -y clang-20
366
+ wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
367
+ sudo apt-add-repository 'deb https://apt.llvm.org/plucky/ llvm-toolchain-plucky-21 main' && break || sleep 1
368
+ sudo apt-get install -y clang-21
358
369
- if : ${{ matrix.use_libcxx }}
359
- run : sudo apt-get install -y libc++-20 -dev libc++abi-20 -dev
370
+ run : sudo apt-get install -y libc++-21 -dev libc++abi-21 -dev
360
371
- if : ${{ matrix.topology != 'no' }}
361
372
run : |
362
373
sudo apt-get install -y hwloc libhwloc-dev
@@ -377,14 +388,14 @@ jobs:
377
388
runs-on : ubuntu-24.04
378
389
continue-on-error : true
379
390
env :
380
- CC : ' clang-20 '
381
- CXX : ' clang++-20 '
391
+ CC : ' clang-21 '
392
+ CXX : ' clang++-21 '
382
393
steps :
383
394
- uses : actions/checkout@v4
384
395
- run : |
385
396
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1
386
- sudo apt-add-repository 'deb https://apt.llvm.org/noble/ llvm-toolchain-noble-20 main' && break || sleep 1
387
- sudo apt-get install clang-format-20
397
+ sudo apt-add-repository 'deb https://apt.llvm.org/noble/ llvm-toolchain-noble-21 main' && break || sleep 1
398
+ sudo apt-get install clang-format-21
388
399
- name : check formatting
389
400
run : |
390
401
clang-format --version
0 commit comments