@@ -128,9 +128,16 @@ jobs:
128
128
- toolset : gcc-13
129
129
cxxstd : " 11,14,17,20,2b"
130
130
os : ubuntu-latest
131
- container : ubuntu:23 .04
131
+ container : ubuntu:24 .04
132
132
install : g++-13-multilib
133
133
address-model : 32,64
134
+ # Linux, gcc-14
135
+ - toolset : gcc-14
136
+ cxxstd : " 11,14,17,20,2b"
137
+ os : ubuntu-latest
138
+ container : ubuntu:24.04
139
+ install : g++-14-multilib
140
+ address-model : 32,64
134
141
# Linux, gcc-12 UBSAN
135
142
- name : UBSAN
136
143
toolset : gcc-12
@@ -285,16 +292,23 @@ jobs:
285
292
- toolset : clang
286
293
compiler : clang++-16
287
294
cxxstd : " 03,11,14,17,20,2b"
288
- container : ubuntu:23 .04
295
+ container : ubuntu:24 .04
289
296
os : ubuntu-latest
290
297
install : clang-16
291
298
# Linux, clang-17
292
299
- toolset : clang
293
300
compiler : clang++-17
294
301
cxxstd : " 03,11,14,17,20,2b"
295
- container : ubuntu:23.10
302
+ container : ubuntu:24.04
296
303
os : ubuntu-latest
297
304
install : clang-17
305
+ # Linux, clang-18
306
+ - toolset : clang
307
+ compiler : clang++-18
308
+ cxxstd : " 03,11,14,17,20,2b"
309
+ container : ubuntu:24.04
310
+ os : ubuntu-latest
311
+ install : clang-18
298
312
# Linux, clang-15 libc++
299
313
- toolset : clang
300
314
compiler : clang++-15
@@ -304,10 +318,17 @@ jobs:
304
318
- clang-15
305
319
- libc++-15-dev
306
320
- libc++abi-15-dev
307
- sources :
308
- - " deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main"
309
- source_keys :
310
- - " https://apt.llvm.org/llvm-snapshot.gpg.key"
321
+ cxxflags : -stdlib=libc++
322
+ linkflags : -stdlib=libc++
323
+ # Linux, clang-18 libc++
324
+ - toolset : clang
325
+ compiler : clang++-18
326
+ cxxstd : " 11,14,17,20,2b"
327
+ os : ubuntu-24.04
328
+ install :
329
+ - clang-18
330
+ - libc++-18-dev
331
+ - libc++abi-18-dev
311
332
cxxflags : -stdlib=libc++
312
333
linkflags : -stdlib=libc++
313
334
# Linux, clang-14 libc++, ubsan
@@ -323,13 +344,22 @@ jobs:
323
344
- clang-14
324
345
- libc++-14-dev
325
346
- libc++abi-14-dev
347
+ # Linux, clang-18 libc++, ubsan
348
+ - name : UBSAN
349
+ toolset : clang
350
+ compiler : clang++-18
351
+ cxxstd : " 11,14,17,20"
352
+ cxxflags : -stdlib=libc++
353
+ linkflags : -stdlib=libc++
354
+ ubsan : 1
355
+ os : ubuntu-24.04
356
+ install :
357
+ - clang-18
358
+ - libc++-18-dev
359
+ - libc++abi-18-dev
326
360
# ------------------
327
361
# MacOS, clang
328
362
# ------------------
329
- # Macos 11, clang
330
- - toolset : clang
331
- cxxstd : " 11,14,17,2a"
332
- os : macos-11
333
363
# Macos 12, clang
334
364
- toolset : clang
335
365
cxxstd : " 11,14,17,20,2b"
@@ -338,6 +368,10 @@ jobs:
338
368
- toolset : clang
339
369
cxxstd : " 11,14,17,20,2b"
340
370
os : macos-13
371
+ # Macos 17, clang
372
+ - toolset : clang
373
+ cxxstd : " 11,14,17,20,2b"
374
+ os : macos-14
341
375
342
376
timeout-minutes : 180
343
377
runs-on : ${{matrix.os}}
@@ -357,7 +391,6 @@ jobs:
357
391
if [ -f "/etc/debian_version" ]
358
392
then
359
393
apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
360
- apt-get -o Acquire::Retries=$NET_RETRY_COUNT dist-upgrade -y
361
394
if [ "$(apt-cache search "^python-is-python3$" | wc -l)" -ne 0 ]
362
395
then
363
396
PYTHON_PACKAGE="python-is-python3"
@@ -368,7 +401,6 @@ jobs:
368
401
fi
369
402
fi
370
403
git config --global pack.threads 0
371
- - uses : actions/checkout@v3
372
404
373
405
- name : Install packages
374
406
if : matrix.install
@@ -425,8 +457,8 @@ jobs:
425
457
done
426
458
fi
427
459
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
428
- sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT dist-upgrade -y
429
460
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y ${{join(matrix.install, ' ')}}
461
+
430
462
- name : Setup GCC Toolchain
431
463
if : matrix.gcc_toolchain
432
464
run : |
@@ -438,6 +470,7 @@ jobs:
438
470
ln -s /usr/bin "$GCC_TOOLCHAIN_ROOT/bin"
439
471
mkdir -p "$GCC_TOOLCHAIN_ROOT/lib/gcc/$MULTIARCH_TRIPLET"
440
472
ln -s "/usr/lib/gcc/$MULTIARCH_TRIPLET/${{matrix.gcc_toolchain}}" "$GCC_TOOLCHAIN_ROOT/lib/gcc/$MULTIARCH_TRIPLET/${{matrix.gcc_toolchain}}"
473
+
441
474
- name : Setup Boost
442
475
run : |
443
476
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
@@ -483,11 +516,25 @@ jobs:
483
516
then
484
517
DEPINST_ARGS+=("--git_args" "--jobs $GIT_FETCH_JOBS")
485
518
fi
519
+ mkdir -p snapshot
520
+ cd snapshot
521
+ echo "Downloading library snapshot: https://github.com/${GITHUB_REPOSITORY}/archive/${GITHUB_SHA}.tar.gz"
522
+ curl -L --retry "$NET_RETRY_COUNT" -o "${LIBRARY}-${GITHUB_SHA}.tar.gz" "https://github.com/${GITHUB_REPOSITORY}/archive/${GITHUB_SHA}.tar.gz"
523
+ tar -xf "${LIBRARY}-${GITHUB_SHA}.tar.gz"
524
+ if [ ! -d "${LIBRARY}-${GITHUB_SHA}" ]
525
+ then
526
+ echo "Library snapshot does not contain the library directory ${LIBRARY}-${GITHUB_SHA}:"
527
+ ls -la
528
+ exit 1
529
+ fi
530
+ rm -f "${LIBRARY}-${GITHUB_SHA}.tar.gz"
486
531
cd ..
487
532
git clone -b "$BOOST_BRANCH" --depth 1 "https://github.com/boostorg/boost.git" "boost-root"
488
533
cd boost-root
489
- mkdir -p libs/$LIBRARY
490
- cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
534
+ mkdir -p libs
535
+ rm -rf "libs/$LIBRARY"
536
+ mv -f "../snapshot/${LIBRARY}-${GITHUB_SHA}" "libs/$LIBRARY"
537
+ rm -rf "../snapshot"
491
538
git submodule update --init tools/boostdep
492
539
DEPINST_ARGS+=("$LIBRARY")
493
540
python tools/boostdep/depinst/depinst.py "${DEPINST_ARGS[@]}"
@@ -502,10 +549,11 @@ jobs:
502
549
fi
503
550
echo " ;" >> ~/user-config.jam
504
551
fi
552
+
505
553
- name : Run tests
506
554
if : matrix.cmake_tests == ''
507
555
run : |
508
- cd ../ boost-root
556
+ cd boost-root
509
557
B2_ARGS=("-j" "$BUILD_JOBS" "toolset=${{matrix.toolset}}" "cxxstd=${{matrix.cxxstd}}")
510
558
if [ -n "${{matrix.build_variant}}" ]
511
559
then
@@ -536,6 +584,7 @@ jobs:
536
584
fi
537
585
B2_ARGS+=("libs/$LIBRARY/test")
538
586
./b2 "${B2_ARGS[@]}"
587
+
539
588
windows :
540
589
strategy :
541
590
fail-fast : false
@@ -562,11 +611,10 @@ jobs:
562
611
addrmd : 64
563
612
os : windows-2019
564
613
614
+ timeout-minutes : 180
565
615
runs-on : ${{matrix.os}}
566
616
567
617
steps :
568
- - uses : actions/checkout@v3
569
-
570
618
- name : Setup Boost
571
619
shell : cmd
572
620
run : |
@@ -580,16 +628,32 @@ jobs:
580
628
set BOOST_BRANCH=develop
581
629
for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
582
630
echo BOOST_BRANCH: %BOOST_BRANCH%
631
+ mkdir snapshot
632
+ cd snapshot
633
+ echo Downloading library snapshot: https://github.com/%GITHUB_REPOSITORY%/archive/%GITHUB_SHA%.zip
634
+ curl -L --retry %NET_RETRY_COUNT% -o "%LIBRARY%-%GITHUB_SHA%.zip" "https://github.com/%GITHUB_REPOSITORY%/archive/%GITHUB_SHA%.zip"
635
+ tar -xf "%LIBRARY%-%GITHUB_SHA%.zip"
636
+ if not exist "%LIBRARY%-%GITHUB_SHA%\" (
637
+ echo Library snapshot does not contain the library directory %LIBRARY%-%GITHUB_SHA%:
638
+ dir
639
+ exit /b 1
640
+ )
641
+ del /f "%LIBRARY%-%GITHUB_SHA%.zip"
583
642
cd ..
584
643
git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
585
644
cd boost-root
586
- xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\
645
+ if not exist "libs\" mkdir libs
646
+ if exist "libs\%LIBRARY%\" rmdir /s /q "libs\%LIBRARY%"
647
+ move /Y "..\snapshot\%LIBRARY%-%GITHUB_SHA%" "libs\%LIBRARY%"
648
+ rmdir /s /q "..\snapshot"
587
649
git submodule update --init tools/boostdep
588
650
python tools/boostdep/depinst/depinst.py --git_args "--jobs %GIT_FETCH_JOBS%" %LIBRARY%
589
651
cmd /c bootstrap
590
652
b2 -d0 headers
653
+
591
654
- name : Run tests
592
655
shell : cmd
593
656
run : |
594
- cd ../ boost-root
657
+ cd boost-root
595
658
b2 -j %NUMBER_OF_PROCESSORS% libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release embed-manifest-via=linker
659
+
0 commit comments