From 0fb6f619c5d5c6a4a74fbc08897cba6904c3a133 Mon Sep 17 00:00:00 2001 From: Anton Maklakov Date: Wed, 31 Oct 2018 18:33:51 +0800 Subject: [PATCH] ci: Detect undetectable failures in build_examples --- .gitlab-ci.yml | 3 ++- tools/ci/build_examples.sh | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 897e61217..435b11208 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -218,6 +218,8 @@ build_esp_idf_tests: .build_examples_make_template: &build_examples_make_template <<: *build_template + # This is a workaround for a rarely encountered issue with building examples in CI. + # Probably related to building of Kconfig in 'make clean' stage retry: 1 artifacts: when: always @@ -251,7 +253,6 @@ build_esp_idf_tests: # same as above, but for CMake .build_examples_cmake_template: &build_examples_cmake_template <<: *build_template - retry: 1 artifacts: when: always paths: diff --git a/tools/ci/build_examples.sh b/tools/ci/build_examples.sh index 530d6ab2e..2210a4b45 100755 --- a/tools/ci/build_examples.sh +++ b/tools/ci/build_examples.sh @@ -121,14 +121,19 @@ build_example () { local BUILDLOG=${LOG_PATH}/ex_${ID}_log.txt touch ${BUILDLOG} + local FLASH_ARGS=build/download.config + make clean >>${BUILDLOG} 2>&1 && make defconfig >>${BUILDLOG} 2>&1 && make all >>${BUILDLOG} 2>&1 && - ( make print_flash_cmd | tail -n 1 >build/download.config ) >>${BUILDLOG} 2>&1 || + make print_flash_cmd >${FLASH_ARGS}.full 2>>${BUILDLOG} || { RESULT=$?; FAILED_EXAMPLES+=" ${EXAMPLE_NAME}" ; } + tail -n 1 ${FLASH_ARGS}.full > ${FLASH_ARGS} || : + test -s ${FLASH_ARGS} || die "Error: ${FLASH_ARGS} file is empty" + cat ${BUILDLOG} popd