From ee074e4464a4778a9e220d9ee83e71bcee507a3c Mon Sep 17 00:00:00 2001 From: MrKevinWeiss Date: Tue, 9 Aug 2022 10:37:29 +0200 Subject: [PATCH] .murdock: disable hash checks of kconfig/make Much CI time is waisted as unrelated hash failure occur. Finding out why is taking some time. In order to stop killing dolphins we will disable only the hash checks. There is a risk of introducing new issues with the kconfig/make dependency resolution. However, the package/module checks are still enforced which should catch 95% of the problems. The nightlies will continue to check as well. --- .murdock | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/.murdock b/.murdock index a338e1e10c..8fa9030d73 100755 --- a/.murdock +++ b/.murdock @@ -456,15 +456,23 @@ compile() { if get_supported_kconfig_board_app "${board}" "${appdir}"; then should_check_kconfig_hash=1 - BOARD=${board} make -C${appdir} clean - CCACHE_BASEDIR="$(pwd)" BOARD=${board} TOOLCHAIN=${toolchain} RIOT_CI_BUILD=1 TEST_KCONFIG=1 \ - make -C${appdir} all test-input-hash -j${JOBS:-4} - RES=$? - if [ $RES -eq 0 ]; then - kconfig_hashes="$(cat ${BINDIR}/test-input-hash.sha1)" - else - kconfig_hashes="kconfig-build-failed" - echo "An error occurred while compiling using Kconfig"; + # As we have some issues with occasional unrelated hash mismatches + # we will stop the binary checks and rely only in a module/package + # check to ensure kconfig is matching make. + # Only nightlies will check the hash... + # Once we figure out the problem we can check the hashes again or + # better yet just finish! + if [ ${NIGHTLY} -eq 1 ]; then + BOARD=${board} make -C${appdir} clean + CCACHE_BASEDIR="$(pwd)" BOARD=${board} TOOLCHAIN=${toolchain} RIOT_CI_BUILD=1 TEST_KCONFIG=1 \ + make -C${appdir} all test-input-hash -j${JOBS:-4} + RES=$? + if [ $RES -eq 0 ]; then + kconfig_hashes="$(cat ${BINDIR}/test-input-hash.sha1)" + else + kconfig_hashes="kconfig-build-failed" + echo "An error occurred while compiling using Kconfig"; + fi fi fi @@ -474,22 +482,29 @@ compile() { make -C${appdir} all test-input-hash -j${JOBS:-4} RES=$? - no_kconfig_hashes="$(cat ${BINDIR}/test-input-hash.sha1)" + if [ ${NIGHTLY} -eq 1 ]; then + no_kconfig_hashes="$(cat ${BINDIR}/test-input-hash.sha1)" + fi # test hash is used to cache test results, not for comparing binaries # generated with and without KConfig test_hash=$(test_hash_calc "$BINDIR") if [ ${should_check_kconfig_hash} != 0 ]; then - if [ "${kconfig_hashes}" != "${no_kconfig_hashes}" ]; then - echo "Hashes of binaries with and without Kconfig mismatch for ${appdir} with ${board}"; - echo "Please check that all used modules are modelled in Kconfig and enabled"; - echo "Input without KConfig:" - echo "${no_kconfig_hashes}" - echo "Input with KConfig:" - echo "${kconfig_hashes}" + if [ ${NIGHTLY} -eq 1 ]; then + if [ "${kconfig_hashes}" != "${no_kconfig_hashes}" ]; then + echo "Hashes of binaries with and without Kconfig mismatch for ${appdir} with ${board}"; + echo "Please check that all used modules are modelled in Kconfig and enabled"; + echo "Input without KConfig:" + echo "${no_kconfig_hashes}" + echo "Input with KConfig:" + echo "${kconfig_hashes}" + kconfig_module_packages_diff ${board} ${appdir} + RES=1 + fi + else kconfig_module_packages_diff ${board} ${appdir} - RES=1 + RES=$(( $RES | $? )) fi fi