Skip to content

Commit 44e6fb3

Browse files
committed
ci: change build coverage
1 parent 0a88571 commit 44e6fb3

1 file changed

Lines changed: 165 additions & 13 deletions

File tree

.github/workflows/build_cmake.yml

Lines changed: 165 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,24 @@ env:
66
BUILD_TYPE: Release
77

88
jobs:
9-
build:
9+
build-native:
1010
name: ${{ matrix.config.name }}
1111
runs-on: ${{ matrix.config.os }}
1212
strategy:
1313
fail-fast: false
1414
matrix:
1515
config:
1616
- {
17-
name: "MacOS Latest, Clang",
18-
os: macos-latest,
17+
name: "macOS 15, Clang",
18+
os: macos-15,
1919
test_target: test,
2020
cc: "clang", cxx: "clang++"
2121
}
2222
- {
23-
name: "Ubuntu Latest, GCC",
24-
os: ubuntu-latest,
25-
test_target: test,
26-
cc: "gcc", cxx: "g++"
27-
}
28-
- {
29-
name: "Windows Latest, MSVC",
30-
os: windows-latest,
23+
name: "Windows 2022, MSVC",
24+
os: windows-2022,
3125
test_target: RUN_TESTS,
32-
cc: "cl", cxx: "cl",
33-
environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
26+
cc: "cl", cxx: "cl"
3427
}
3528
#- {
3629
# name: "Windows Latest, MinGW+gcc",
@@ -52,3 +45,162 @@ jobs:
5245
run: cmake --build build --config Release --target ${{ matrix.config.test_target }}
5346
- name: Install headers
5447
run: cmake --build build -t install
48+
49+
build-ubuntu-gcc:
50+
name: Compiler / ${{ matrix.config.name }}
51+
runs-on: ubuntu-24.04
52+
container:
53+
image: ${{ matrix.config.image }}
54+
defaults:
55+
run:
56+
shell: bash
57+
strategy:
58+
fail-fast: false
59+
matrix:
60+
config:
61+
- {
62+
name: "Ubuntu 24.04, GCC 9",
63+
image: "ubuntu:24.04",
64+
test_target: test,
65+
cc: "gcc-9", cxx: "g++-9",
66+
packages: "gcc-9 g++-9",
67+
cxx_standard: "11"
68+
}
69+
- {
70+
name: "Ubuntu 24.04, GCC 10",
71+
image: "ubuntu:24.04",
72+
test_target: test,
73+
cc: "gcc-10", cxx: "g++-10",
74+
packages: "gcc-10 g++-10",
75+
cxx_standard: "11"
76+
}
77+
- {
78+
name: "Ubuntu 24.04, GCC 11",
79+
image: "ubuntu:24.04",
80+
test_target: test,
81+
cc: "gcc-11", cxx: "g++-11",
82+
packages: "gcc-11 g++-11",
83+
cxx_standard: "11"
84+
}
85+
- {
86+
name: "Ubuntu 24.04, GCC 12",
87+
image: "ubuntu:24.04",
88+
test_target: test,
89+
cc: "gcc-12", cxx: "g++-12",
90+
packages: "gcc-12 g++-12",
91+
cxx_standard: "11"
92+
}
93+
- {
94+
name: "Ubuntu 24.04, GCC 13",
95+
image: "ubuntu:24.04",
96+
test_target: test,
97+
cc: "gcc-13", cxx: "g++-13",
98+
packages: "gcc-13 g++-13",
99+
cxx_standard: "11"
100+
}
101+
- {
102+
name: "Ubuntu 24.04, GCC 14",
103+
image: "ubuntu:24.04",
104+
test_target: test,
105+
cc: "gcc-14", cxx: "g++-14",
106+
packages: "gcc-14 g++-14",
107+
cxx_standard: "11"
108+
}
109+
- {
110+
name: "Ubuntu 25.10, GCC 15",
111+
image: "ubuntu:25.10",
112+
test_target: test,
113+
cc: "gcc-15", cxx: "g++-15",
114+
packages: "gcc-15 g++-15",
115+
cxx_standard: "11"
116+
}
117+
steps:
118+
- name: Install build dependencies
119+
env:
120+
DEBIAN_FRONTEND: noninteractive
121+
run: |
122+
apt-get update
123+
apt-get install -y --no-install-recommends \
124+
ca-certificates \
125+
cmake \
126+
git \
127+
make \
128+
${{ matrix.config.packages }}
129+
- name: Checkout
130+
uses: actions/checkout@v4
131+
with:
132+
submodules: true
133+
persist-credentials: false
134+
- name: Configure
135+
env:
136+
CC: ${{ matrix.config.cc }}
137+
CXX: ${{ matrix.config.cxx }}
138+
run: cmake -B build -S . -DCMAKE_CXX_STANDARD=${{ matrix.config.cxx_standard }} -DCMAKE_INSTALL_PREFIX=./install_test
139+
- name: Build C++ unit tests
140+
run: cmake --build build --config Release
141+
- name: Run C++ tests
142+
run: cmake --build build --config Release --target ${{ matrix.config.test_target }}
143+
- name: Install headers
144+
run: cmake --build build -t install
145+
146+
build-ubuntu-std:
147+
name: Standard / Ubuntu 25.10, GCC 15, C++${{ matrix.config.cxx_standard }}
148+
runs-on: ubuntu-24.04
149+
container:
150+
image: ubuntu:25.10
151+
defaults:
152+
run:
153+
shell: bash
154+
strategy:
155+
fail-fast: false
156+
matrix:
157+
config:
158+
- {
159+
cxx_standard: "11",
160+
test_target: test
161+
}
162+
- {
163+
cxx_standard: "14",
164+
test_target: test
165+
}
166+
- {
167+
cxx_standard: "17",
168+
test_target: test
169+
}
170+
- {
171+
cxx_standard: "20",
172+
test_target: test
173+
}
174+
- {
175+
cxx_standard: "23",
176+
test_target: test,
177+
}
178+
steps:
179+
- name: Install build dependencies
180+
env:
181+
DEBIAN_FRONTEND: noninteractive
182+
run: |
183+
apt-get update
184+
apt-get install -y --no-install-recommends \
185+
ca-certificates \
186+
cmake \
187+
gcc-15 \
188+
g++-15 \
189+
git \
190+
make
191+
- name: Checkout
192+
uses: actions/checkout@v4
193+
with:
194+
submodules: true
195+
persist-credentials: false
196+
- name: Configure
197+
env:
198+
CC: gcc-15
199+
CXX: g++-15
200+
run: cmake -B build -S . -DCMAKE_CXX_STANDARD=${{ matrix.config.cxx_standard }} -DCMAKE_INSTALL_PREFIX=./install_test
201+
- name: Build C++ unit tests
202+
run: cmake --build build --config Release
203+
- name: Run C++ tests
204+
run: cmake --build build --config Release --target ${{ matrix.config.test_target }}
205+
- name: Install headers
206+
run: cmake --build build -t install

0 commit comments

Comments
 (0)