]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Generate, check the JUnit reports for the doctest job
authorŠtěpán Balážik <stepan@isc.org>
Tue, 6 Jan 2026 15:42:34 +0000 (16:42 +0100)
committerŠtěpán Balážik <stepan@isc.org>
Tue, 6 Jan 2026 15:54:37 +0000 (16:54 +0100)
Pass it to GitLab for display.

.gitlab-ci.yml

index d866b72294a4365f176029ec1bd7e2dc5dae9f93..5a6ac3dc69eb424b3853d8a23dbb56b04cb838e6 100644 (file)
@@ -771,13 +771,29 @@ meson-format:
 doctest:
   <<: *precheck_job
   needs: []
+  # This script needs to: 1) fail if the doctest fails, 2) fail if
+  # the junit.xml file is broken, 3) produce the junit.xml file even if
+  # the doctest fails.  Therefore, $RET is used to "cache" the
+  # result of running pytest as interrupting the script immediately when
+  # a doctest fails would make checking the contents of the junit.xml
+  # file impossible (GitLab Runner uses "set -o pipefail").
   script:
     - *configure
     - meson compile -C build system-test-init
+    - *find_python
     - *find_pytest
     - cd bin/tests/system/isctest
+    - RET=0
+    - >
+      "$PYTEST" --noconftest --doctest-modules --junit-xml="$CI_PROJECT_DIR/junit_doctest.xml" || RET=1
+    - *git_clone_bind9-qa
     - >
-      "$PYTEST" --noconftest --doctest-modules
+      "$PYTHON" bind9-qa/ci/postprocess_junit_files.py "$CI_PROJECT_DIR/junit_doctest.xml" --output "$CI_PROJECT_DIR/junit.xml"
+    - (exit $RET)
+  artifacts:
+    reports:
+      junit:
+        - junit.xml
 
 pylint:
   <<: *precheck_job