@@ -134,12 +134,16 @@ variables:
134134.finish_test_app_build : &finish_test_app_build |
135135 export UT_APP_DIR=$PWD
136136 mkdir -p $UT_APP_DIR/gcov_data
137- pushd $UT_APP_DIR/builds/gcov_dual
138- find . -type d -exec mkdir -p $UT_APP_DIR/gcov_data/gcov_dual/\{\} \;
139- popd
140- pushd $UT_APP_DIR/builds/gcov_single
141- find . -type d -exec mkdir -p $UT_APP_DIR/gcov_data/gcov_single/\{\} \;
142- popd
137+ if [ -d "$UT_APP_DIR/builds/gcov_dual" ]; then
138+ pushd $UT_APP_DIR/builds/gcov_dual
139+ find . -type d -exec mkdir -p $UT_APP_DIR/gcov_data/gcov_dual/\{\} \;
140+ popd
141+ fi
142+ if [ -d "$UT_APP_DIR/builds/gcov_single" ]; then
143+ pushd $UT_APP_DIR/builds/gcov_single
144+ find . -type d -exec mkdir -p $UT_APP_DIR/gcov_data/gcov_single/\{\} \;
145+ popd
146+ fi
143147 echo "export OPENOCD_GCOV_PREFIX=$UT_APP_DIR/gcov_data" > $UT_APP_DIR/gcov_data/gcov_env.sh
144148 export PREFIX_STRIP=$(awk -F"/" '{print NF-1}' <<< $UT_APP_DIR/builds)
145149 echo "export OPENOCD_GCOV_PREFIX_STRIP=$PREFIX_STRIP" >> $UT_APP_DIR/gcov_data/gcov_env.sh
@@ -173,6 +177,19 @@ variables:
173177 - *finish_test_app_build
174178 - *prepare_espytrace_package
175179
180+ .do_build_test_app : &do_build_test_app |
181+ if [ -z "$TEST_APP_CONFIGS" ]; then
182+ echo "Build ALL"
183+ $IDF_PATH/tools/idf.py -D IDF_TARGET=esp32 ut-build-all-configs
184+ else
185+ for cfg_name in $TEST_APP_CONFIGS
186+ do
187+ echo "Build <${cfg_name}>"
188+ $IDF_PATH/tools/idf.py ut-apply-config-$cfg_name
189+ $IDF_PATH/tools/idf.py ut-build-$cfg_name
190+ done
191+ fi
192+
176193.build_test_app_template : &build_test_app_template
177194 stage : build
178195 image : $CI_DOCKER_REGISTRY/esp32-ci-env
@@ -200,7 +217,7 @@ variables:
200217 # in the image and `export.sh` fails w/o adding tools to $PATH
201218 - idf_exports=$(${IDF_PATH}/tools/idf_tools.py export) || true
202219 - eval "${idf_exports}"
203- - $IDF_PATH/tools/idf.py -D IDF_TARGET=esp32 ut-build-all-configs
220+ - *do_build_test_app
204221 - *finish_test_app_build
205222 - *prepare_espytrace_package
206223
@@ -393,14 +410,24 @@ build_test_app:
393410 << : *build_test_app_template
394411 variables :
395412 BUILD_TEST_APP_DIR : " build_test_app"
413+ TEST_APP_CONFIGS : " "
396414 TEST_APP_IDF_TAG : $CI_COMMIT_REF_NAME
397415 UT_GET_IDF_VER : " 0"
398416
399417build_test_app_legacy_idf_release :
400418 << : *build_legacy_test_app_template
401419 variables :
402420 BUILD_TEST_APP_DIR : " build_test_app_legacy_idf_release"
403- TEST_APP_IDF_TAG : " release/v$TEST_APP_LEGACY_IDF_RELEASE_TAG"
421+ TEST_APP_CONFIGS : " "
422+ TEST_APP_IDF_TAG : " v$TEST_APP_LEGACY_IDF_RELEASE_TAG"
423+ UT_GET_IDF_VER : " 1"
424+
425+ build_test_app_custom_idf_release :
426+ << : *build_test_app_template
427+ variables :
428+ BUILD_TEST_APP_DIR : " build_test_app_custom_idf_release"
429+ TEST_APP_CONFIGS : " default single_core"
430+ TEST_APP_IDF_TAG : " v$TEST_APP_CUSTOM_IDF_RELEASE_TAG"
404431 UT_GET_IDF_VER : " 1"
405432
406433tests_linux64 :
@@ -427,6 +454,19 @@ tests_linux64_legacy_idf_release:
427454 TEST_RUN_DIR : " build_test_app_legacy_idf_release"
428455 TEST_RUN_EXTRA_OPTS : " -i $TEST_APP_LEGACY_IDF_RELEASE_TAG -b esp32-wrover-kit-3.3v"
429456
457+ tests_linux64_custom_idf_release :
458+ << : *tests_linux_template
459+ tags :
460+ - test_jtag
461+ dependencies :
462+ - build_test_app_custom_idf_release
463+ - build_linux
464+ variables :
465+ PLATFORM_NAME : " linux64"
466+ TEST_RUN_DIR : " build_test_app_custom_idf_release"
467+ # currently we need to run semihost test on IDF with old semihost driver
468+ TEST_RUN_EXTRA_OPTS : " -i $TEST_APP_CUSTOM_IDF_RELEASE_TAG -b esp32-wrover-kit-3.3v -p test_semihost"
469+
430470tests_armel :
431471 stage : test
432472 image : $CI_DOCKER_REGISTRY/rpi-esp-idf-env:1
0 commit comments