From: Štěpán Balážik Date: Wed, 4 Jun 2025 13:18:29 +0000 (+0200) Subject: Hoist the junit and artifact handling to the `&unit_test_common` anchor X-Git-Tag: v9.21.10~21^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ec1a37ca090df41f046e20c6a6c788e7a4a0afe;p=thirdparty%2Fbind9.git Hoist the junit and artifact handling to the `&unit_test_common` anchor In some cases the report wasn't generated, sometimes it wasn't kept properly. This unifies the way artifacts are generated and kept. --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cbf3bf688e2..f7ad056ef50 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -447,37 +447,37 @@ stages: .unit_test_common: &unit_test_common <<: *default_triggering_rules stage: unit + # This script needs to: 1) fail if the unit tests fail, 2) fail if the + # junit.xml file is broken, 3) produce the junit.xml file even if the + # unit tests fail. Therefore, $RET is used to "cache" the result of + # running "meson test" as interrupting the script immediately when + # unit tests fail would make checking the contents of the junit.xml + # file impossible (GitLab Runner uses "set -o pipefail"). script: - *fips_feature_test - - meson test -C build --no-rebuild - after_script: + - RET=0 + - meson test -C build --no-rebuild || RET=1 - cp build/meson-logs/testlog.junit.xml $CI_PROJECT_DIR/junit.xml + - *check_for_junit_xml + - (exit $RET) - test "$CLEAN_BUILD_ARTIFACTS_ON_SUCCESS" -eq 0 || ninja -C build clean >/dev/null 2>&1 - -.unit_test: &unit_test_job - <<: *unit_test_common artifacts: untracked: true when: always reports: junit: junit.xml +.unit_test: &unit_test_job + <<: *unit_test_common + .unit_test_gcov: &unit_test_gcov_job <<: *unit_test_common - artifacts: - untracked: true - when: always .unit_test_tsan: &unit_test_tsan_job <<: *unit_test_common after_script: - *find_python - *parse_tsan - artifacts: - untracked: true - when: always - reports: - junit: junit.xml .docs: &docs_job stage: docs