diff mbox series

support/misc/gitlab-ci.yml.in: print error log if the runtime test fail

Message ID 20231111113731.859747-1-romain.naour@smile.fr
State Accepted
Headers show
Series support/misc/gitlab-ci.yml.in: print error log if the runtime test fail | expand

Commit Message

Romain Naour Nov. 11, 2023, 11:37 a.m. UTC
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>
---
 support/misc/gitlab-ci.yml.in | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Comments

Peter Korsgaard Dec. 3, 2023, 7:21 p.m. UTC | #1
>>>>> "Romain" == Romain Naour <romain.naour@smile.fr> writes:

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

Committed to next, thanks.
diff mbox series

Patch

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: