From 91276d9a8cd91d856193268b453ec3934eb67cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= Date: Thu, 26 Mar 2020 11:03:52 +0100 Subject: [PATCH] Refactor TSAN unit test job definitions Multiple YAML keys have identical values for both TSAN unit test job definitions. Extract these common keys to a YAML anchor and use it in TSAN unit test job definitions to reduce code duplication. (cherry picked from commit 84463f33bfe7777b5884696820cdf484ea9a1073) --- .gitlab-ci.yml | 51 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 036933bc7d..883045987f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -320,7 +320,7 @@ stages: - tags - web -.unit_test: &unit_test_job +.unit_test_common: &unit_test_common <<: *default_triggering_rules stage: unit before_script: @@ -329,6 +329,9 @@ stages: - make unit after_script: - *kyua_report_html + +.unit_test: &unit_test_job + <<: *unit_test_common artifacts: paths: - kyua.log @@ -337,6 +340,22 @@ stages: expire_in: "1 day" when: on_failure +.unit_test_tsan: &unit_test_tsan_job + <<: *unit_test_common + allow_failure: true + after_script: + - *kyua_report_html + - find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \; + artifacts: + expire_in: "1 day" + paths: + - lib/*/tests/tsan.* + - tsan/ + - kyua.log + - kyua.results + - kyua_html/ + when: on_failure + .cppcheck_args: &run_cppcheck | cppcheck --enable=warning,performance,portability,information,missingInclude --include=config.h --std=c11 --language=c --project=compile_commands.json --error-exitcode=2 -j ${TEST_PARALLEL_JOBS:-1} --xml --output-file=cppcheck.results --relative-paths="$CI_PROJECT_DIR" --inline-suppr --suppressions-list=util/suppressions.txt @@ -943,23 +962,10 @@ unit:gcc:tsan: variables: TSAN_OPTIONS: ${TSAN_OPTIONS_COMMON} <<: *base_image - <<: *unit_test_job + <<: *unit_test_tsan_job needs: - job: gcc:tsan artifacts: true - allow_failure: true - after_script: - - *kyua_report_html - - find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \; - artifacts: - expire_in: "1 day" - paths: - - lib/*/tests/tsan.* - - tsan/ - - kyua.log - - kyua.results - - kyua_html/ - when: on_failure clang:tsan: <<: *base_image @@ -983,23 +989,10 @@ unit:clang:tsan: variables: TSAN_OPTIONS: ${TSAN_OPTIONS_COMMON} <<: *base_image - <<: *unit_test_job + <<: *unit_test_tsan_job needs: - job: clang:tsan artifacts: true - allow_failure: true - after_script: - - *kyua_report_html - - find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \; - artifacts: - expire_in: "1 day" - paths: - - lib/*/tests/tsan.* - - tsan/ - - kyua.log - - kyua.results - - kyua_html/ - when: on_failure # Jobs for mutex-based atomics on Debian SID (amd64) mutexatomics: