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 <peter@korsgaard.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Romain Naour 2023-11-11 12:37:31 +01:00 committed by Peter Korsgaard
parent 8e871ac18b
commit 3503d48897

View File

@ -103,7 +103,16 @@ before_script:
script: script:
- TEST_CASE_NAME=${CI_JOB_NAME} - TEST_CASE_NAME=${CI_JOB_NAME}
- echo "Starting runtime test ${TEST_CASE_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: retry:
max: 2 max: 2
when: when: