From da93a57ac978d73c3272633139b663058301e996 Mon Sep 17 00:00:00 2001 From: ewertons Date: Wed, 25 Aug 2021 08:34:11 -0700 Subject: [PATCH] Add github workflow to verify Espressif ESP32 sample (#86) * Add github action to verify Espressif ESP32 sample * [ACR/2] Add github action to verify Espressif ESP32 sample * [ACR/3] Add github action to verify Espressif ESP32 sample --- .github/scripts/ci_tests.sh | 90 +++++++++++++++++++--------- .github/workflows/ci_tests_linux.yml | 5 +- 2 files changed, 67 insertions(+), 28 deletions(-) diff --git a/.github/scripts/ci_tests.sh b/.github/scripts/ci_tests.sh index c0082939..45306a45 100755 --- a/.github/scripts/ci_tests.sh +++ b/.github/scripts/ci_tests.sh @@ -2,6 +2,10 @@ # Copyright (c) Microsoft. All rights reserved. # Licensed under the MIT license. See LICENSE file in the project root for full license information. +# +# ci_tests.sh [-st] [-nxp] [-pc] [-esp] +# +# if none specified all vendors are build set -o errexit # Exit if command failed. set -o nounset # Exit if variable not set. @@ -9,7 +13,8 @@ set -o pipefail # Exit if pipe failed. TEST_SCRIPT_DIR=`dirname "$0"` TEST_FREERTOS_SRC=`pwd`/libs/FreeRTOS -$TEST_SCRIPT_DIR/fetch_freertos.sh $TEST_FREERTOS_SRC +RUN_BOARDS_BUILD=${@:-"-st -nxp -pc -esp"} +FREERTOS_FETCHED=0 function exit_if_binary_does_not_exist() { @@ -29,38 +34,69 @@ function sample_build() { local board=$2 local outdir=$3 - cmake -G Ninja -DBOARD=$board -DVENDOR=$vendor -B$outdir -DFREERTOS_PATH=$TEST_FREERTOS_SRC . - cmake --build $outdir + if [ $vendor == "ESPRESSIF" ] + then + idf.py build -C ./demos/projects/ESPRESSIF/esp32 + else + cmake -G Ninja -DBOARD=$board -DVENDOR=$vendor -B$outdir -DFREERTOS_PATH=$TEST_FREERTOS_SRC . + cmake --build $outdir + fi } -######################## Simulations ####################### +function fetch_freertos() +{ + if [ $FREERTOS_FETCHED == 0 ] + then + $TEST_SCRIPT_DIR/fetch_freertos.sh $TEST_FREERTOS_SRC + FREERTOS_FETCHED=1 + fi +} -echo -e "::group::Building sample for linux port" -sample_build "PC" "linux" "build_pc_linux" -exit_if_binary_does_not_exist "build_pc_linux" "iot-middleware-sample" -exit_if_binary_does_not_exist "build_pc_linux" "iot-middleware-sample-pnp" +for arg in $RUN_BOARDS_BUILD +do + case "$arg" in + "-esp") + echo -e "::group::Building sample for ESPRESSIF ESP32 port" + sample_build "ESPRESSIF" "esp32" "build" + exit_if_binary_does_not_exist "./demos/projects/ESPRESSIF/esp32/build" "azure_iot_freertos_esp32.bin" + ;; + "-nxp") + fetch_freertos -######################## ST Boards ######################### + echo -e "::group::Building sample for NXP mimxrt1060 port" + sample_build "NXP" "mimxrt1060" "build_nxp_mimxrt1060" + exit_if_binary_does_not_exist "build_nxp_mimxrt1060" "iot-middleware-sample.elf" + exit_if_binary_does_not_exist "build_nxp_mimxrt1060" "iot-middleware-sample-pnp.elf" + ;; + "-st") + fetch_freertos -echo -e "::group::Building sample for ST b-l475e-iot01a port" -sample_build "ST" "b-l475e-iot01a" "build_st_b-l475e-iot01a" -exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample.elf" -exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample-pnp.elf" -exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample-gsg.elf" + echo -e "::group::Building sample for ST b-l475e-iot01a port" + sample_build "ST" "b-l475e-iot01a" "build_st_b-l475e-iot01a" + exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample.elf" + exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample-pnp.elf" + exit_if_binary_does_not_exist "build_st_b-l475e-iot01a" "iot-middleware-sample-gsg.elf" -echo -e "::group::Building sample for ST stm32h745i-disco port" -sample_build "ST" "stm32h745i-disco" "build_st_stm32h745i-disco" -exit_if_binary_does_not_exist "build_st_stm32h745i-disco" "iot-middleware-sample.elf" -exit_if_binary_does_not_exist "build_st_stm32h745i-disco" "iot-middleware-sample-pnp.elf" + echo -e "::group::Building sample for ST stm32h745i-disco port" + sample_build "ST" "stm32h745i-disco" "build_st_stm32h745i-disco" + exit_if_binary_does_not_exist "build_st_stm32h745i-disco" "iot-middleware-sample.elf" + exit_if_binary_does_not_exist "build_st_stm32h745i-disco" "iot-middleware-sample-pnp.elf" -echo -e "::group::Building sample for ST b-l4s5i-iot01a port" -sample_build "ST" "b-l4s5i-iot01a" "build_st_b-l4s5i-iot01a" -exit_if_binary_does_not_exist "build_st_b-l4s5i-iot01a" "iot-middleware-sample.elf" -exit_if_binary_does_not_exist "build_st_b-l4s5i-iot01a" "iot-middleware-sample-pnp.elf" + echo -e "::group::Building sample for ST b-l4s5i-iot01a port" + sample_build "ST" "b-l4s5i-iot01a" "build_st_b-l4s5i-iot01a" + exit_if_binary_does_not_exist "build_st_b-l4s5i-iot01a" "iot-middleware-sample.elf" + exit_if_binary_does_not_exist "build_st_b-l4s5i-iot01a" "iot-middleware-sample-pnp.elf" + ;; + "-pc") + fetch_freertos -######################## NXP Boards ######################## + echo -e "::group::Building sample for linux port" + sample_build "PC" "linux" "build_pc_linux" + exit_if_binary_does_not_exist "build_pc_linux" "iot-middleware-sample" + exit_if_binary_does_not_exist "build_pc_linux" "iot-middleware-sample-pnp" + ;; + * ) + echo "build for $arg not found";; + esac +done -echo -e "::group::Building sample for NXP mimxrt1060 port" -sample_build "NXP" "mimxrt1060" "build_nxp_mimxrt1060" -exit_if_binary_does_not_exist "build_nxp_mimxrt1060" "iot-middleware-sample.elf" -exit_if_binary_does_not_exist "build_nxp_mimxrt1060" "iot-middleware-sample-pnp.elf" diff --git a/.github/workflows/ci_tests_linux.yml b/.github/workflows/ci_tests_linux.yml index fa8cc6ab..6e133892 100644 --- a/.github/workflows/ci_tests_linux.yml +++ b/.github/workflows/ci_tests_linux.yml @@ -7,6 +7,7 @@ jobs: runs-on: ubuntu-latest steps: + - uses: docker://espressif/idf:v4.3 - uses: actions/checkout@v2 - name: Style Check run: .github/scripts/code_style.sh check @@ -15,4 +16,6 @@ jobs: - name: Configure run: .github/scripts/install_software.sh - name: Check-in Tests - run: sudo bash -c ".github/scripts/ci_tests.sh" + run: sudo bash -c ".github/scripts/ci_tests.sh -st -nxp -pc" + - name: Build Esp32 Sample + run: docker run -v "${PWD}:/iot-middleware-freertos-samples" -w /iot-middleware-freertos-samples espressif/idf .github/scripts/ci_tests.sh -esp