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 84463f33bf)
This commit is contained in:
Michał Kępień 2020-03-26 11:03:52 +01:00
parent 5e2428a545
commit 91276d9a8c

View file

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