Skip to content

Commit

Permalink
Add github workflow to verify Espressif ESP32 sample (#86)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
ewertons committed Aug 25, 2021
1 parent bc9a63e commit da93a57
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 28 deletions.
90 changes: 63 additions & 27 deletions .github/scripts/ci_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,19 @@

# 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.
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()
{
Expand All @@ -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"
5 changes: 4 additions & 1 deletion .github/workflows/ci_tests_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

0 comments on commit da93a57

Please sign in to comment.