66 BUILD_TYPE : Release
77
88jobs :
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