[Buildroot] [git commit] support/misc/gitlab-ci.yml.in: print error log if the runtime test fail

Peter Korsgaard peter at korsgaard.com
Sun Dec 3 19:20:53 UTC 2023


commit: https://git.buildroot.net/buildroot/commit/?id=3503d48897bd841f26e2a20bf750dc8174d0fa85
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

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 at korsgaard.com>
Signed-off-by: Romain Naour <romain.naour at smile.fr>
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
---
 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:



More information about the buildroot mailing list