From 3503d48897bd841f26e2a20bf750dc8174d0fa85 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Sat, 11 Nov 2023 12:37:31 +0100 Subject: [PATCH] support/misc/gitlab-ci.yml.in: print error log if the runtime test fail When an error occurs, the gitlab-ci job log doesn't contain any useful information than the name of the failing test: FAIL: test_run (tests.package.test_python_paho_mqtt.TestPythonPahoMQTT) In order to encourage contributors to investigate issues reported by gitlab-ci, we want to print the last lines of the log file (build or runtime). Unfortunately, gitlab-ci job log completely strips lines ending with CRCRLF [1][2]. We have to take a look at the gitlab-ci raw log to see the complete log [3]. To workaround this issue, remove crlf from qemu serial stdio log while printing in the gitlab-ci job log (we don't want to change the log file generated by support/testing/run-tests and saved as artefacts). [1] https://gitlab.com/gitlab-org/gitlab/-/issues/218771 [2] https://gitlab.com/kubu93/buildroot/-/jobs/5492937691 [3] https://gitlab.com/kubu93/buildroot/-/jobs/5492937691/raw Cc: Peter Korsgaard Signed-off-by: Romain Naour Signed-off-by: Peter Korsgaard --- support/misc/gitlab-ci.yml.in | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/support/misc/gitlab-ci.yml.in b/support/misc/gitlab-ci.yml.in index 4d9acbc3d3..db206432aa 100644 --- a/support/misc/gitlab-ci.yml.in +++ b/support/misc/gitlab-ci.yml.in @@ -103,7 +103,16 @@ before_script: script: - TEST_CASE_NAME=${CI_JOB_NAME} - echo "Starting runtime test ${TEST_CASE_NAME}" - - ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME} + - | + ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME} || { + echo 'Failed runtime test last output' + if [ -f test-output/*-run.log ]; then + tail -200 test-output/*-run.log | sed 's/\r\r$//' + else + tail -200 test-output/*-build.log + fi + exit 1 + } retry: max: 2 when: