Skip to content
This repository was archived by the owner on Jan 29, 2026. It is now read-only.

Commit baad986

Browse files
committed
ci: move meson ci tests into bvt workflows
1 parent 443b90f commit baad986

9 files changed

Lines changed: 201 additions & 265 deletions

File tree

.github/workflows/bvt-appleclang.yml

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,44 @@ on:
44
jobs:
55
bvt-appleclang:
66
runs-on: macos-15
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
buildsystem: [cmake, meson]
11+
712
steps:
813
- uses: actions/checkout@v4
914

15+
- name: install meson
16+
if: ${{ matrix.buildsystem == 'meson' }}
17+
run: pipx install meson
18+
1019
- name: check compiler versions
1120
run: |
12-
clang --version
21+
cc --version
1322
xcodebuild -version
1423
15-
- name: build and run test with AppleClang
24+
- name: build and run test with AppleClang on cmake
25+
if: ${{ matrix.buildsystem == 'cmake' }}
1626
run: |
1727
cmake -B build -GNinja -DCMAKE_CXX_STANDARD=23 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE
1828
cmake --build build -j
1929
ctest --test-dir build -j
2030
mkdir build/drop
21-
chmod +x tools/dump_build_env.sh
22-
./tools/dump_build_env.sh clang++ build/drop/env-info.json
31+
bash ./tools/dump_build_env.sh c++ build/drop/env-info.json
2332
24-
- name: run benchmarks
33+
- name: build and run test with AppleClang on meson
34+
if: ${{ matrix.buildsystem == 'meson' }}
2535
run: |
26-
build/benchmarks/msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build/drop/benchmarking-results.json
36+
meson setup builddir --buildtype=release -Dtests=enabled
37+
meson test -C builddir
38+
39+
- name: run benchmarks
40+
if: ${{ matrix.buildsystem == 'cmake' }}
41+
run: build/benchmarks/msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build/drop/benchmarking-results.json
2742

2843
- name: archive benchmarking results
44+
if: ${{ matrix.buildsystem == 'cmake' }}
2945
uses: actions/upload-artifact@v4
3046
with:
3147
name: drop-appleclang

.github/workflows/bvt-clang.yml

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,56 @@ on:
44
jobs:
55
bvt-clang:
66
runs-on: ubuntu-24.04
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
buildsystem: [cmake, meson]
11+
712
steps:
813
- uses: actions/checkout@v4
914

15+
- name: install meson
16+
if: ${{ matrix.buildsystem == 'meson' }}
17+
run: pipx install meson
18+
1019
- name: install clang
1120
run: |
12-
wget https://apt.llvm.org/llvm.sh
13-
chmod +x llvm.sh
14-
sudo ./llvm.sh 21
15-
sudo apt install -y libc++-21-dev clang-format-21
21+
curl https://apt.llvm.org/llvm.sh | sudo bash -s -- 21
22+
sudo apt install -y clang-21 libc++-21-dev clang-format-21
23+
cat <<'EOF' >> "$GITHUB_ENV"
24+
CC=clang-21
25+
CXX=clang++-21
26+
CXXFLAGS=-stdlib=libc++
27+
EOF
1628
1729
- name: check compiler version
1830
run: |
19-
clang++-21 --version
31+
"$CXX" --version
2032
21-
- name: build and run test with clang 21
33+
- name: build and run test with clang 20 on cmake
34+
if: ${{ matrix.buildsystem == 'cmake' }}
2235
run: |
23-
cmake -B build -GNinja -DCMAKE_C_COMPILER=clang-21 -DCMAKE_CXX_COMPILER=clang++-21 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_CXX_STANDARD=23 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE
36+
cmake -B build -GNinja -DCMAKE_CXX_STANDARD=23 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE
2437
mapfile -t FILES < <(find include tests benchmarks build/examples_from_docs tools -type f \( -name '*.h' -o -name '*.ixx' -o -name '*.cpp' \))
2538
echo "Running clang-format on ${#FILES[@]} files: ${FILES[*]}"
2639
clang-format-21 --dry-run --Werror "${FILES[@]}"
2740
cmake --build build -j
2841
ctest --test-dir build -j
2942
mkdir build/drop
30-
chmod +x tools/dump_build_env.sh
31-
./tools/dump_build_env.sh clang++-21 build/drop/env-info.json
43+
bash ./tools/dump_build_env.sh "$CXX" build/drop/env-info.json
3244
33-
- name: run benchmarks
45+
- name: build and run test with clang 20 on meson
46+
if: ${{ matrix.buildsystem == 'meson' }}
3447
run: |
35-
build/benchmarks/msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build/drop/benchmarking-results.json
48+
meson setup builddir --buildtype=release -Dtests=enabled
49+
meson test -C builddir
50+
51+
- name: run benchmarks
52+
if: ${{ matrix.buildsystem == 'cmake' }}
53+
run: build/benchmarks/msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build/drop/benchmarking-results.json
3654

3755
- name: archive benchmarking results
56+
if: ${{ matrix.buildsystem == 'cmake' }}
3857
uses: actions/upload-artifact@v4
3958
with:
4059
name: drop-clang

.github/workflows/bvt-compatibility.yml

Lines changed: 42 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,63 +4,58 @@ on:
44
jobs:
55
bvt-compatibility:
66
runs-on: ubuntu-24.04
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
compiler:
11+
- {compiler: gcc, version: 13, modules: false}
12+
- {compiler: gcc, version: 14, modules: true}
13+
- {compiler: clang, version: 16, modules: false}
14+
- {compiler: clang, version: 17, modules: false}
15+
- {compiler: clang, version: 18, modules: false}
16+
- {compiler: clang, version: 19, modules: false}
17+
- {compiler: clang, version: 20, modules: true}
18+
buildsystem: [cmake, meson]
19+
720
steps:
821
- uses: actions/checkout@v4
922

10-
- name: install compilers
11-
run: |
12-
wget https://apt.llvm.org/llvm.sh
13-
chmod +x llvm.sh
14-
sudo ./llvm.sh 20
15-
sudo apt install -y gcc-13 g++-13 gcc-14 g++-14 clang-16 clang-17 clang-18 clang-19 libc++-17-dev
16-
17-
- name: check compiler versions
18-
run: |
19-
g++-13 --version
20-
g++-14 --version
21-
clang++-16 --version
22-
clang++-17 --version
23-
clang++-18 --version
24-
clang++-19 --version
25-
clang++-20 --version
23+
- name: install meson
24+
if: ${{ matrix.buildsystem == 'meson' }}
25+
run: pipx install meson
2626

27-
- name: build and run test with gcc 14
27+
- name: install gcc
28+
if: ${{ matrix.compiler.compiler == 'gcc' }}
2829
run: |
29-
cmake -B build-gcc-14 -GNinja -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE
30-
cmake --build build-gcc-14 -j
31-
ctest --test-dir build-gcc-14 -j
30+
sudo apt install -y 'g++-${{ matrix.compiler.version }}'
31+
cat <<'EOF' >> "$GITHUB_ENV"
32+
CC=gcc-${{ matrix.compiler.version }}
33+
CXX=g++-${{ matrix.compiler.version }}
34+
EOF
3235
33-
- name: build and run test with gcc 13
34-
run: |
35-
cmake -B build-gcc-13 -DCMAKE_C_COMPILER=gcc-13 -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE
36-
cmake --build build-gcc-13 -j
37-
ctest --test-dir build-gcc-13 -j
38-
39-
- name: build and run test with clang 20
40-
run: |
41-
cmake -B build-clang-20 -GNinja -DCMAKE_C_COMPILER=clang-20 -DCMAKE_CXX_COMPILER=clang++-20 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE
42-
cmake --build build-clang-20 -j
43-
ctest --test-dir build-clang-20 -j
44-
- name: build and run test with clang 19
36+
- name: install clang
37+
if: ${{ matrix.compiler.compiler == 'clang' }}
4538
run: |
46-
cmake -B build-clang-19 -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE
47-
cmake --build build-clang-19 -j
48-
ctest --test-dir build-clang-19 -j
39+
sudo apt install -y 'clang-${{ matrix.compiler.version }}' 'clang-tools-${{ matrix.compiler.version }}' 'libc++-${{ matrix.compiler.version }}-dev' 'libc++abi-${{ matrix.compiler.version }}-dev'
40+
cat <<'EOF' >> "$GITHUB_ENV"
41+
CC=clang-${{ matrix.compiler.version }}
42+
CXX=clang++-${{ matrix.compiler.version }}
43+
CXXFLAGS=-stdlib=libc++
44+
EOF
4945
50-
- name: build and run test with clang 18
46+
- name: check compiler version
5147
run: |
52-
cmake -B build-clang-18 -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE
53-
cmake --build build-clang-18 -j
54-
ctest --test-dir build-clang-18 -j
48+
"$CXX" --version
5549
56-
- name: build and run test with clang 17
50+
- name: build and run test with cmake
51+
if: ${{ matrix.buildsystem == 'cmake' }}
5752
run: |
58-
cmake -B build-clang-17 -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE
59-
cmake --build build-clang-17 -j
60-
ctest --test-dir build-clang-17 -j
53+
cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release '-DPROXY_BUILD_MODULES=${{ matrix.compiler.modules }}'
54+
cmake --build build -j
55+
ctest --test-dir build -j
6156
62-
- name: build and run test with clang 16
57+
- name: build and run test with meson
58+
if: ${{ matrix.buildsystem == 'meson' }}
6359
run: |
64-
cmake -B build-clang-16 -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE
65-
cmake --build build-clang-16 -j
66-
ctest --test-dir build-clang-16 -j
60+
meson setup build --buildtype=release -Dmodules=${{ matrix.compiler.modules && 'auto' || 'disabled' }}
61+
meson test -C build

.github/workflows/bvt-gcc.yml

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,52 @@ jobs:
55
bvt-gcc:
66
runs-on: ubuntu-24.04
77
container: gcc:15
8+
strategy:
9+
fail-fast: false
10+
matrix:
11+
buildsystem: [cmake, meson]
12+
813
steps:
914
- uses: actions/checkout@v4
1015

11-
- name: install dependencies
16+
- name: install cmake
17+
if: ${{ matrix.buildsystem == 'cmake' }}
1218
run: |
1319
apt-get update
1420
apt-get install -y cmake ninja-build
1521
22+
- name: install meson
23+
if: ${{ matrix.buildsystem == 'meson' }}
24+
run: |
25+
apt-get update
26+
apt-get install -y meson ninja-build
27+
1628
- name: check compiler version
1729
run: |
18-
g++ --version
30+
c++ --version
1931
20-
- name: build and run test with gcc 15
32+
- name: build and run test with gcc 15 on cmake
33+
if: ${{ matrix.buildsystem == 'cmake' }}
2134
run: |
22-
cmake -B build -GNinja -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_STANDARD=23 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE
35+
cmake -B build -GNinja -DCMAKE_CXX_STANDARD=23 -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=TRUE
2336
cmake --build build -j
2437
ctest --test-dir build -j
2538
mkdir build/drop
2639
chmod +x tools/dump_build_env.sh
27-
./tools/dump_build_env.sh g++ build/drop/env-info.json
40+
./tools/dump_build_env.sh c++ build/drop/env-info.json
2841
29-
- name: run benchmarks
42+
- name: build and run test with gcc 15 on meson
43+
if: ${{ matrix.buildsystem == 'meson' }}
3044
run: |
31-
build/benchmarks/msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build/drop/benchmarking-results.json
45+
meson setup builddir --buildtype=release -Dtests=enabled
46+
meson test -C builddir
47+
48+
- name: run benchmarks
49+
if: ${{ matrix.buildsystem == 'cmake' }}
50+
run: build/benchmarks/msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build/drop/benchmarking-results.json
3251

3352
- name: archive benchmarking results
53+
if: ${{ matrix.buildsystem == 'cmake' }}
3454
uses: actions/upload-artifact@v4
3555
with:
3656
name: drop-gcc

.github/workflows/bvt-msvc.yml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,43 @@ on:
44
jobs:
55
bvt-msvc:
66
runs-on: windows-2025
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
buildsystem: [cmake, meson]
11+
712
steps:
813
- uses: actions/checkout@v4
914

15+
- name: install meson
16+
if: ${{ matrix.buildsystem == 'meson' }}
17+
run: pipx install meson
18+
1019
- name: add cl.exe to PATH
20+
if: ${{ matrix.buildsystem == 'cmake' }}
1121
uses: ilammy/msvc-dev-cmd@v1
1222

13-
- name: build and run test with MSVC
23+
- name: build and run test with MSVC on cmake
24+
if: ${{ matrix.buildsystem == 'cmake' }}
1425
run: |
1526
cmake -B build -DCMAKE_CXX_STANDARD=23 -DPROXY_BUILD_MODULES=TRUE `
1627
&& cmake --build build --config Release -j `
1728
&& ctest --test-dir build -j `
1829
&& mkdir build\drop > $null `
1930
&& .\tools\dump_build_env_msvc.ps1 -OutputPath build\drop\env-info.json
2031
21-
- name: run benchmarks
32+
- name: build and run test with MSVC on meson
33+
if: ${{ matrix.buildsystem == 'meson' }}
2234
run: |
23-
build\benchmarks\Release\msft_proxy_benchmarks.exe --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build\drop\benchmarking-results.json
35+
meson setup builddir --buildtype=release -Dtests=enabled --vsenv
36+
meson test -C builddir
37+
38+
- name: run benchmarks
39+
if: ${{ matrix.buildsystem == 'cmake' }}
40+
run: build\benchmarks\Release\msft_proxy_benchmarks.exe --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build\drop\benchmarking-results.json
2441

2542
- name: archive benchmarking results
43+
if: ${{ matrix.buildsystem == 'cmake' }}
2644
uses: actions/upload-artifact@v4
2745
with:
2846
name: drop-msvc

.github/workflows/bvt-nvhpc.yml

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,54 @@ on:
44
jobs:
55
bvt-nvhpc:
66
runs-on: ubuntu-24.04
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
buildsystem: [cmake, meson]
11+
712
steps:
813
- uses: actions/checkout@v4
914

1015
- name: free disk space
1116
uses: jlumbroso/free-disk-space@v1.3.1
1217

18+
- name: install meson
19+
if: ${{ matrix.buildsystem == 'meson' }}
20+
run: pipx install meson
21+
1322
- name: install NVHPC 25.11
1423
run: |
1524
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
1625
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
1726
sudo apt-get update -y
1827
sudo apt-get install -y nvhpc-25-11
28+
cat<<'EOF' >> "$GITHUB_ENV"
29+
CC=/opt/nvidia/hpc_sdk/Linux_x86_64/25.11/compilers/bin/nvc
30+
CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/25.11/compilers/bin/nvc++
31+
EOF
1932
20-
- name: build and run test with NVHPC 25.11
33+
- name: build and run test with NVHPC 25.11 on cmake
34+
if: ${{ matrix.buildsystem == 'cmake' }}
2135
run: |
22-
PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/25.11/compilers/bin:$PATH; export PATH
23-
cmake -B build -GNinja -DCMAKE_C_COMPILER=nvc -DCMAKE_CXX_COMPILER=nvc++ -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE
36+
cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DPROXY_BUILD_MODULES=FALSE
2437
cmake --build build -j
2538
ctest --test-dir build -j
2639
mkdir build/drop
2740
chmod +x tools/dump_build_env.sh
28-
./tools/dump_build_env.sh nvc++ build/drop/env-info.json
41+
./tools/dump_build_env.sh "$CXX" build/drop/env-info.json
2942
30-
- name: run benchmarks
43+
- name: build and run test with NVHPC 25.7 on meson
44+
if: ${{ matrix.buildsystem == 'meson' }}
3145
run: |
32-
build/benchmarks/msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build/drop/benchmarking-results.json
46+
meson setup builddir --buildtype=release -Dtests=enabled
47+
meson test -C builddir
48+
49+
- name: run benchmarks
50+
if: ${{ matrix.buildsystem == 'cmake' }}
51+
run: build/benchmarks/msft_proxy_benchmarks --benchmark_min_warmup_time=0.1 --benchmark_min_time=0.1s --benchmark_repetitions=30 --benchmark_enable_random_interleaving=true --benchmark_report_aggregates_only=true --benchmark_format=json > build/drop/benchmarking-results.json
3352

3453
- name: archive benchmarking results
54+
if: ${{ matrix.buildsystem == 'cmake' }}
3555
uses: actions/upload-artifact@v4
3656
with:
3757
name: drop-nvhpc

0 commit comments

Comments
 (0)