wolfSSL / wolfMQTT

wolfMQTT is a small, fast, portable MQTT client implementation, including support for TLS 1.3.
https://www.wolfssl.com
GNU General Public License v2.0
522 stars 156 forks source link

Initial Espressif CI; limit Zepher CI #390

Closed gojimmypi closed 7 months ago

gojimmypi commented 9 months ago

Add initial build checks for new Espressif wolfMQTT examples, based on the work @bandi13 created for wolfssl.

I also noticed the Zepher job was running a bit too aggressively, so included here is a limit to 'master', 'main', 'release/**'.

Many other features should eventually be added. At some point we may consider include building the Espressif examples with etiher the latest wolfssl dev and/or latest release. For now the new docker-Espressif.yml uses the published managed wolfssl component only and for only the ESP32 (not -S3, -C3, etc). Note the wolfssl version is currently hard-coded:

WOLFSSL_COMPONENT=wolfssl/wolfssl^5.6.6-stable-update2-esp32

See comments in new IDE/Espressif/ESP-IDF/compileAllExamples.sh file, duplicated here:

# NOTE: The wolfMQTT examples include a CMakeLists.txt that will look for wolfssl
# source code. Using managed components will cause a conflict.
# The manifested error will be something like:
#   CMake Error at /opt/esp/idf/tools/cmake/component.cmake:250 (message):
#     ERROR: Cannot process component requirements.  Multiple candidates to
#       satisfy project requirements:
#     requirement: "wolfssl" candidates: "wolfssl, wolfssl__wolfssl"
# See `components/wolfssl.bak` rename, below, to avoid this error.
# A future CMakeLists.txt may handle this more gracefully.
#
# Additionally, the wolfSSL.bak cmake file needs to be renamed (disabled), as it
# goes looking for wolfssl source code - which is not present in docker CI build.

# We could test on all possible ESP-IDF targets:
#
#   targets=$(idf.py --list-targets)
#   for target in $targets; do
#       if [[ $target == esp32* ]]; then
#           echo "Found target to process: $target"
#       else
#           echo "Will skip target $target"
#       fi
#   done
#
# But for now just testing the basic ESP32