1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-28 16:01:18 +01:00

.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.
This commit is contained in:
MrKevinWeiss 2022-08-09 10:37:29 +02:00
parent 26faa881b6
commit ee074e4464
No known key found for this signature in database
GPG Key ID: 4B69974722CBEEAE

View File

@ -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