@@ -114,11 +114,15 @@ jobs:
114114 fail-fast : false # Don't cancel all jobs if one fails.
115115 matrix :
116116 include :
117- - flags : -Dprotobuf_BUILD_EXAMPLES=ON
117+ - flags : -Dprotobuf_BUILD_EXAMPLES=ON -DCMAKE_CXX_STANDARD=14
118118 - name : Ninja
119- flags : -G Ninja
119+ flags : -G Ninja -DCMAKE_CXX_STANDARD=14
120120 - name : Shared
121- flags : -Dprotobuf_BUILD_SHARED_LIBS=ON -Dprotobuf_BUILD_EXAMPLES=ON
121+ flags : -Dprotobuf_BUILD_SHARED_LIBS=ON -Dprotobuf_BUILD_EXAMPLES=ON -DCMAKE_CXX_STANDARD=14
122+ - name : C++17
123+ flags : -DCMAKE_CXX_STANDARD=17
124+ - name : C++20
125+ flags : -DCMAKE_CXX_STANDARD=20
122126
123127 name : Linux CMake ${{ matrix.name}}
124128 runs-on : ubuntu-latest
@@ -202,7 +206,18 @@ jobs:
202206 cmake --build .
203207
204208 linux-cmake-gcc :
205- name : Linux CMake GCC
209+ strategy :
210+ fail-fast : false # Don't cancel all jobs if one fails.
211+ matrix :
212+ include :
213+ - name : C++14
214+ flags : -DCMAKE_CXX_STANDARD=14
215+ - name : C++17
216+ flags : -DCMAKE_CXX_STANDARD=17
217+ - name : C++20
218+ flags : -DCMAKE_CXX_STANDARD=20
219+
220+ name : Linux CMake GCC ${{ matrix.name }}
206221 runs-on : ubuntu-latest
207222 steps :
208223 - name : Checkout pending changes
@@ -214,7 +229,7 @@ jobs:
214229 - name : Setup ccache
215230 uses : protocolbuffers/protobuf-ci/ccache@v1
216231 with :
217- cache-prefix : linux-cmake-gcc
232+ cache-prefix : linux-cmake-gcc-${{ matrix.name }}
218233
219234 - name : Run tests
220235 uses : protocolbuffers/protobuf-ci/docker@v1
@@ -226,7 +241,7 @@ jobs:
226241 -c 'set -ex;
227242 cd /workspace;
228243 ccache -z;
229- cmake . -DCMAKE_CXX_STANDARD=14 ${{ env.CCACHE_CMAKE_FLAGS }};
244+ cmake . ${{ matrix.flags }} ${{ env.CCACHE_CMAKE_FLAGS }};
230245 cmake --build . --parallel 20;
231246 ctest --verbose --parallel 20;
232247 ccache -s'
0 commit comments