Optimize GH runner script:

- Disable debug info to improve disk performance
- Remove ancient Clang 3.5
- Add -pipe to avoid disk writing for intermediate files
- Separate 32 and 64 bit window tasks as Windows machines are much slower than Linux machines
This commit is contained in:
Ion Gaztañaga
2025-11-11 22:59:41 +01:00
parent b48049378a
commit 7bae5106eb

View File

@@ -29,6 +29,7 @@ jobs:
# Linux, gcc-4.8
- toolset: gcc-4.8
cxxstd: "03,11"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:18.04
@@ -37,6 +38,7 @@ jobs:
# Linux, gcc-4.9
- toolset: gcc-4.9
cxxstd: "03,11"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:16.04
@@ -44,6 +46,7 @@ jobs:
- g++-4.9-multilib
# Linux, gcc-5
- toolset: gcc-5
cxxflags: -pipe
cxxstd: "03,11,14,1z"
address-model: 32,64
os: ubuntu-latest
@@ -53,6 +56,7 @@ jobs:
# Linux, gcc-6
- toolset: gcc-6
cxxstd: "03,11,14,1z"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:18.04
@@ -61,6 +65,7 @@ jobs:
# Linux, gcc-7
- toolset: gcc-7
cxxstd: "03,11,14,17"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:18.04
@@ -69,6 +74,7 @@ jobs:
# Linux, gcc-8
- toolset: gcc-8
cxxstd: "03,11,14,17,2a"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:18.04
@@ -77,6 +83,7 @@ jobs:
# Linux, gcc-9
- toolset: gcc-9
cxxstd: "03,11,14,17,2a"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:20.04
@@ -85,6 +92,7 @@ jobs:
# Linux, gcc-10
- toolset: gcc-10
cxxstd: "03,11,14,17,20"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:20.04
@@ -93,6 +101,7 @@ jobs:
# Linux, gcc-11
- toolset: gcc-11
cxxstd: "03,11,14,17,20,23"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:22.04
@@ -101,6 +110,7 @@ jobs:
# Linux, gcc-12
- toolset: gcc-12
cxxstd: "03,11,14,17,20,23"
cxxflags: -pipe
address-model: 32,64
os: ubuntu-latest
container: ubuntu:22.04
@@ -109,6 +119,7 @@ jobs:
# Linux, gcc-13
- toolset: gcc-13
cxxstd: "11,14,17,20,2b"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:24.04
install: g++-13-multilib
@@ -116,6 +127,7 @@ jobs:
# Linux, gcc-14
- toolset: gcc-14
cxxstd: "11,14,17,20,2b"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:24.04
install: g++-14-multilib
@@ -124,6 +136,7 @@ jobs:
- name: UBSAN
toolset: gcc-12
cxxstd: "03,11,14,17,20,23"
cxxflags: -pipe
ubsan: 1
os: ubuntu-latest
container: ubuntu:22.04
@@ -132,18 +145,11 @@ jobs:
#------------------
# Linux, clang
#------------------
# Linux, clang-3.5
- toolset: clang
compiler: clang++-3.5
cxxstd: "03,11"
os: ubuntu-latest
container: ubuntu:16.04
install:
- clang-3.5
# Linux, clang-3.6
- toolset: clang
compiler: clang++-3.6
cxxstd: "03,11,14"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:16.04
install:
@@ -152,6 +158,7 @@ jobs:
- toolset: clang
compiler: clang++-3.7
cxxstd: "03,11,14"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:16.04
install:
@@ -160,6 +167,7 @@ jobs:
- toolset: clang
compiler: clang++-3.8
cxxstd: "03,11,14"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:16.04
install:
@@ -168,6 +176,7 @@ jobs:
- toolset: clang
compiler: clang++-3.9
cxxstd: "03,11,14"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:18.04
install:
@@ -176,6 +185,7 @@ jobs:
- toolset: clang
compiler: clang++-4.0
cxxstd: "03,11,14"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:18.04
install:
@@ -184,6 +194,7 @@ jobs:
- toolset: clang
compiler: clang++-5.0
cxxstd: "03,11,14,1z"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:18.04
install:
@@ -192,6 +203,7 @@ jobs:
- toolset: clang
compiler: clang++-6.0
cxxstd: "03,11,14,17"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:18.04
install:
@@ -200,6 +212,7 @@ jobs:
- toolset: clang
compiler: clang++-7
cxxstd: "03,11,14,17"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:18.04
install:
@@ -209,6 +222,7 @@ jobs:
- toolset: clang
compiler: clang++-8
cxxstd: "03,11,14,17,2a"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:18.04
install:
@@ -219,6 +233,7 @@ jobs:
- toolset: clang
compiler: clang++-9
cxxstd: "03,11,14,17,2a"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:20.04
install:
@@ -227,6 +242,7 @@ jobs:
- toolset: clang
compiler: clang++-10
cxxstd: "03,11,14,17,20"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:20.04
install:
@@ -235,6 +251,7 @@ jobs:
- toolset: clang
compiler: clang++-11
cxxstd: "03,11,14,17,20"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:22.04
install:
@@ -243,6 +260,7 @@ jobs:
- toolset: clang
compiler: clang++-12
cxxstd: "03,11,14,17,20"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:22.04
install:
@@ -251,6 +269,7 @@ jobs:
- toolset: clang
compiler: clang++-13
cxxstd: "03,11,14,17,20"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:22.04
install:
@@ -259,6 +278,7 @@ jobs:
- toolset: clang
compiler: clang++-14
cxxstd: "03,11,14,17,20"
cxxflags: -pipe
os: ubuntu-latest
container: ubuntu:22.04
install:
@@ -267,12 +287,14 @@ jobs:
- toolset: clang
compiler: clang++-15
cxxstd: "03,11,14,17,20"
cxxflags: -pipe
container: ubuntu:22.04
os: ubuntu-latest
install: clang-15
# Linux, clang-16
- toolset: clang
compiler: clang++-16
cxxflags: -pipe
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:24.04
os: ubuntu-latest
@@ -281,6 +303,7 @@ jobs:
- toolset: clang
compiler: clang++-17
cxxstd: "03,11,14,17,20,2b"
cxxflags: -pipe
container: ubuntu:24.04
os: ubuntu-latest
install: clang-17
@@ -288,6 +311,7 @@ jobs:
- toolset: clang
compiler: clang++-18
cxxstd: "03,11,14,17,20,2b"
cxxflags: -pipe
container: ubuntu:24.04
os: ubuntu-latest
install: clang-18
@@ -307,7 +331,7 @@ jobs:
- clang-15
- libc++-15-dev
- libc++abi-15-dev
cxxflags: -stdlib=libc++
cxxflags: -pipe -stdlib=libc++
linkflags: -stdlib=libc++
# Linux, clang-18 libc++
- toolset: clang
@@ -318,14 +342,14 @@ jobs:
- clang-18
- libc++-18-dev
- libc++abi-18-dev
cxxflags: -stdlib=libc++
cxxflags: -pipe -stdlib=libc++
linkflags: -stdlib=libc++
# Linux, clang-14 libc++, ubsan
- name: UBSAN
toolset: clang
compiler: clang++-14
cxxstd: "03,11,14,17,20"
cxxflags: -stdlib=libc++
cxxflags: -pipe -stdlib=libc++
linkflags: -stdlib=libc++
ubsan: 1
os: ubuntu-22.04
@@ -338,7 +362,7 @@ jobs:
toolset: clang
compiler: clang++-18
cxxstd: "11,14,17,20"
cxxflags: -stdlib=libc++
cxxflags: -pipe -stdlib=libc++
linkflags: -stdlib=libc++
ubsan: 1
os: ubuntu-24.04
@@ -471,6 +495,7 @@ jobs:
BOOST_BRANCH=develop && [ "$REF" = "master" ] && BOOST_BRANCH=master || true
echo BOOST_BRANCH: $BOOST_BRANCH
BUILD_JOBS=$((nproc || sysctl -n hw.ncpu) 2> /dev/null)
echo BUILD_JOBS: $BUILD_JOBS
echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV
echo "CMAKE_BUILD_PARALLEL_LEVEL=$BUILD_JOBS" >> $GITHUB_ENV
DEPINST_ARGS=()
@@ -540,7 +565,7 @@ jobs:
if: matrix.cmake_tests == ''
run: |
cd boost-root
B2_ARGS=("-j" "$BUILD_JOBS" "toolset=${{matrix.toolset}}" "cxxstd=${{matrix.cxxstd}}")
B2_ARGS=("-j" "$BUILD_JOBS" "toolset=${{matrix.toolset}}" "cxxstd=${{matrix.cxxstd}}" "debug-symbols=off")
if [ -n "${{matrix.build_variant}}" ]
then
B2_ARGS+=("variant=${{matrix.build_variant}}")
@@ -576,9 +601,15 @@ jobs:
fail-fast: false
matrix:
include:
#------------------
#Windows runners are much slower, split 32/64 bit jobs
- toolset: msvc-14.3
cxxstd: "14,17,20,latest"
addrmd: 32,64
addrmd: 32
os: windows-2025
- toolset: msvc-14.3
cxxstd: "14,17,20,latest"
addrmd: 64
os: windows-2025
- toolset: clang-win
cxxstd: "14,17,latest"
@@ -606,6 +637,7 @@ jobs:
set BOOST_BRANCH=develop
for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
echo BOOST_BRANCH: %BOOST_BRANCH%
echo NUMBER_OF_PROCESSORS: %NUMBER_OF_PROCESSORS%
mkdir snapshot
cd snapshot
echo Downloading library snapshot: https://github.com/%GITHUB_REPOSITORY%/archive/%GITHUB_SHA%.zip
@@ -633,5 +665,5 @@ jobs:
shell: cmd
run: |
cd boost-root
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
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 debug-symbols=off