@@ -3,8 +3,8 @@ name: Github Actions Build
33on : [push]
44
55env :
6- COMMS_TAG : v5.2.5
7- CC_MQTT5_TAG : v2.8
6+ COMMS_TAG : v5.2.7
7+ CC_MQTT5_TAG : v2.9
88
99jobs :
1010 build_gcc_ubuntu_22_04 :
1515 type : [Debug, Release, MinSizeRel]
1616 cpp : [17, 20]
1717 cc_ver : [9, 10, 11, 12]
18+ sanitize : [ON, OFF]
1819 exclude :
20+ - type : Debug
21+ sanitize : OFF
1922 - cc_ver : 12
20- cpp : 20
23+ cpp : 20
24+
25+ steps :
26+ - uses : actions/checkout@v4
27+
28+ - name : Prepare Install
29+ run : sudo apt-get update --fix-missing
30+
31+ - name : Install Packages
32+ run : sudo apt install libboost-all-dev mosquitto gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}}
33+
34+ - name : Create Build Environment
35+ run : cmake -E make_directory ${{runner.workspace}}/build
36+
37+ - name : Prepare externals
38+ shell : bash
39+ run : $GITHUB_WORKSPACE/script/prepare_externals.sh
40+ env :
41+ BUILD_DIR : ${{runner.workspace}}/build
42+ CC : gcc-${{matrix.cc_ver}}
43+ CXX : g++-${{matrix.cc_ver}}
44+ EXTERNALS_DIR : ${{runner.workspace}}/externals
45+ COMMON_INSTALL_DIR : ${{runner.workspace}}/build/install
46+ COMMON_BUILD_TYPE : ${{matrix.type}}
47+ COMMON_CXX_STANDARD : ${{matrix.cpp}}
48+ COMMS_TAG : ${{env.COMMS_TAG}}
49+ CC_MQTT5_TAG : ${{env.CC_MQTT5_TAG}}
50+
51+ - name : Configure CMake
52+ shell : bash
53+ working-directory : ${{runner.workspace}}/build
54+ run : |
55+ cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \
56+ -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} \
57+ -DCC_MQTT5_WITH_DEFAULT_SANITIZERS=${{matrix.sanitize}} \
58+ -DCC_MQTT5_BUILD_UNIT_TESTS=ON -DCC_MQTT5_BUILD_INTEGRATION_TESTS=ON \
59+ -DCC_MQTT5_CUSTOM_CLIENT_CONFIG_FILES="$GITHUB_WORKSPACE/client/lib/script/BareMetalTestConfig.cmake;$GITHUB_WORKSPACE/client/lib/script/Qos0TestConfig.cmake;$GITHUB_WORKSPACE/client/lib/script/Qos1TestConfig.cmake" \
60+ -DCC_MQTT5_CLIENT_AFL_FUZZ=ON
61+ env :
62+ CC : gcc-${{matrix.cc_ver}}
63+ CXX : g++-${{matrix.cc_ver}}
64+
65+ - name : Build Target
66+ working-directory : ${{runner.workspace}}/build
67+ shell : bash
68+ run : cmake --build . --config ${{matrix.type}} --target install
69+ env :
70+ VERBOSE : 1
71+
72+ - name : Testing
73+ working-directory : ${{runner.workspace}}/build
74+ shell : bash
75+ run : ctest -V
76+
77+ build_gcc_ubuntu_24_04 :
78+ runs-on : ubuntu-24.04
79+ strategy :
80+ fail-fast : false
81+ matrix :
82+ type : [Debug, Release, MinSizeRel]
83+ cc_ver : [13, 14]
84+ cpp : [17, 20, 23]
85+ sanitize : [ON, OFF]
86+ exclude :
87+ - type : Debug
88+ sanitize : OFF
89+ - cc_ver : 13
90+ cpp : 23
91+
2192 steps :
2293 - uses : actions/checkout@v4
2394
50121 run : |
51122 cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \
52123 -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} \
53- -DCC_MQTT5_WITH_DEFAULT_SANITIZERS=ON \
124+ -DCC_MQTT5_WITH_DEFAULT_SANITIZERS=${{matrix.sanitize}} \
54125 -DCC_MQTT5_BUILD_UNIT_TESTS=ON -DCC_MQTT5_BUILD_INTEGRATION_TESTS=ON \
55126 -DCC_MQTT5_CUSTOM_CLIENT_CONFIG_FILES="$GITHUB_WORKSPACE/client/lib/script/BareMetalTestConfig.cmake;$GITHUB_WORKSPACE/client/lib/script/Qos0TestConfig.cmake;$GITHUB_WORKSPACE/client/lib/script/Qos1TestConfig.cmake" \
56127 -DCC_MQTT5_CLIENT_AFL_FUZZ=ON
@@ -79,14 +150,84 @@ jobs:
79150 type : [Debug, Release, MinSizeRel]
80151 cc_ver : [12, 13, 14, 15]
81152 cpp : [17, 20]
153+ sanitize : [ON, OFF]
82154 exclude :
155+ - type : Debug
156+ sanitize : OFF
83157 - cc_ver : 12
84158 cpp : 20
85159 - cc_ver : 13
86160 cpp : 20
87161 - cc_ver : 14
88162 cpp : 20
89163
164+ steps :
165+ - uses : actions/checkout@v4
166+
167+ - name : Prepare Install
168+ run : sudo apt-get update --fix-missing
169+
170+ - name : Install Packages
171+ run : sudo apt install libboost-all-dev mosquitto clang-${{matrix.cc_ver}}
172+
173+ - name : Create Build Environment
174+ run : cmake -E make_directory ${{runner.workspace}}/build
175+
176+ - name : Prepare externals
177+ shell : bash
178+ run : $GITHUB_WORKSPACE/script/prepare_externals.sh
179+ env :
180+ BUILD_DIR : ${{runner.workspace}}/build
181+ CC : clang-${{matrix.cc_ver}}
182+ CXX : clang++-${{matrix.cc_ver}}
183+ EXTERNALS_DIR : ${{runner.workspace}}/externals
184+ COMMON_INSTALL_DIR : ${{runner.workspace}}/build/install
185+ COMMON_BUILD_TYPE : ${{matrix.type}}
186+ COMMON_CXX_STANDARD : ${{matrix.cpp}}
187+ COMMS_TAG : ${{env.COMMS_TAG}}
188+ CC_MQTT5_TAG : ${{env.CC_MQTT5_TAG}}
189+
190+ - name : Configure CMake
191+ shell : bash
192+ working-directory : ${{runner.workspace}}/build
193+ run : |
194+ cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \
195+ -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} \
196+ -DCC_MQTT5_WITH_DEFAULT_SANITIZERS=${{matrix.sanitize}} \
197+ -DCC_MQTT5_BUILD_UNIT_TESTS=ON -DCC_MQTT5_BUILD_INTEGRATION_TESTS=ON \
198+ -DCC_MQTT5_CUSTOM_CLIENT_CONFIG_FILES="$GITHUB_WORKSPACE/client/lib/script/BareMetalTestConfig.cmake;$GITHUB_WORKSPACE/client/lib/script/Qos0TestConfig.cmake;$GITHUB_WORKSPACE/client/lib/script/Qos1TestConfig.cmake" \
199+ -DCC_MQTT5_CLIENT_AFL_FUZZ=ON
200+ env :
201+ CC : clang-${{matrix.cc_ver}}
202+ CXX : clang++-${{matrix.cc_ver}}
203+
204+ - name : Build Target
205+ working-directory : ${{runner.workspace}}/build
206+ shell : bash
207+ run : cmake --build . --config ${{matrix.type}} --target install
208+ env :
209+ VERBOSE : 1
210+ - name : Testing
211+ working-directory : ${{runner.workspace}}/build
212+ shell : bash
213+ run : ctest -V
214+
215+ build_clang_ubuntu_24_04 :
216+ runs-on : ubuntu-24.04
217+ strategy :
218+ fail-fast : false
219+ matrix :
220+ type : [Debug, Release, MinSizeRel]
221+ cc_ver : [16, 17, 18]
222+ cpp : [17, 20, 23]
223+ sanitize : [ON, OFF]
224+ exclude :
225+ - type : Debug
226+ sanitize : OFF
227+ - cc_ver : 16
228+ cpp : 23
229+ - cc_ver : 17
230+ cpp : 23
90231
91232 steps :
92233 - uses : actions/checkout@v4
@@ -120,7 +261,7 @@ jobs:
120261 run : |
121262 cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \
122263 -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} \
123- -DCC_MQTT5_WITH_DEFAULT_SANITIZERS=ON \
264+ -DCC_MQTT5_WITH_DEFAULT_SANITIZERS=${{matrix.sanitize}} \
124265 -DCC_MQTT5_BUILD_UNIT_TESTS=ON -DCC_MQTT5_BUILD_INTEGRATION_TESTS=ON \
125266 -DCC_MQTT5_CUSTOM_CLIENT_CONFIG_FILES="$GITHUB_WORKSPACE/client/lib/script/BareMetalTestConfig.cmake;$GITHUB_WORKSPACE/client/lib/script/Qos0TestConfig.cmake;$GITHUB_WORKSPACE/client/lib/script/Qos1TestConfig.cmake" \
126267 -DCC_MQTT5_CLIENT_AFL_FUZZ=ON
@@ -155,9 +296,10 @@ jobs:
155296 run : cmake -E make_directory ${{runner.workspace}}/build
156297
157298 - name : Install Boost
299+ if : matrix.arch == 'x64'
158300 shell : cmd
159301 run : |
160- choco install boost-msvc-14.2
302+ choco install boost-msvc-14.2 --version=1.85.0
161303
162304 - name : Prepare externals
163305 shell : cmd
@@ -178,10 +320,13 @@ jobs:
178320 working-directory : ${{runner.workspace}}/build
179321 run : |
180322 cmake %GITHUB_WORKSPACE% -A ${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install ^
181- -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DBoost_USE_STATIC_LIBS=ON ^
323+ -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} ^
324+ -DCMAKE_POLICY_DEFAULT_CMP0167=OLD -DBoost_USE_STATIC_LIBS=ON ^
182325 -DCC_MQTT5_BUILD_UNIT_TESTS=ON ^
183326 -DCC_MQTT5_CUSTOM_CLIENT_CONFIG_FILES="%GITHUB_WORKSPACE%/client/lib/script/BareMetalTestConfig.cmake;%GITHUB_WORKSPACE%/client/lib/script/Qos0TestConfig.cmake;%GITHUB_WORKSPACE%/client/lib/script/Qos1TestConfig.cmake" ^
184- -DCC_MQTT5_CLIENT_AFL_FUZZ=ON
327+ -DCC_MQTT5_CLIENT_APPS=${{env.HAS_BOOST}} -DCC_MQTT5_CLIENT_AFL_FUZZ=${{env.HAS_BOOST}}
328+ env :
329+ HAS_BOOST : " ${{ matrix.arch == 'x64' && 'ON' || 'OFF' }}"
185330
186331 - name : Build Target
187332 working-directory : ${{runner.workspace}}/build
@@ -213,7 +358,7 @@ jobs:
213358 if : matrix.arch == 'x64'
214359 shell : cmd
215360 run : |
216- choco install boost-msvc-14.3
361+ choco install boost-msvc-14.3 --version=1.85.0
217362
218363 - name : Prepare externals
219364 shell : cmd
@@ -234,7 +379,8 @@ jobs:
234379 working-directory : ${{runner.workspace}}/build
235380 run : |
236381 cmake %GITHUB_WORKSPACE% -A ${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install ^
237- -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DBoost_USE_STATIC_LIBS=ON ^
382+ -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} ^
383+ -DCMAKE_POLICY_DEFAULT_CMP0167=OLD -DBoost_USE_STATIC_LIBS=ON ^
238384 -DCC_MQTT5_BUILD_UNIT_TESTS=ON ^
239385 -DCC_MQTT5_CUSTOM_CLIENT_CONFIG_FILES="%GITHUB_WORKSPACE%/client/lib/script/BareMetalTestConfig.cmake;%GITHUB_WORKSPACE%/client/lib/script/Qos0TestConfig.cmake;%GITHUB_WORKSPACE%/client/lib/script/Qos1TestConfig.cmake" ^
240386 -DCC_MQTT5_CLIENT_APPS=${{env.HAS_BOOST}} -DCC_MQTT5_CLIENT_AFL_FUZZ=${{env.HAS_BOOST}}
0 commit comments