Newer
Older
Hans Dembinski
committed
## Runtime options for sanitizers
# (detect_leaks=0 because leak detection doesn't work in CI, but you can
# try to test with leak detection locally by using detect_leaks=1)
UBSAN_OPTIONS: "print_stacktrace=1"
LSAN_OPTIONS: "log_threads=1"
ASAN_OPTIONS: "detect_leaks=0:detect_stack_use_after_return=1"
- optional
# job/stage to just prepare cmake
config-u-18_04:
image: corsika/devel:u-18.04
stage: config
tags:
- corsika
script:
- mkdir build
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DWITH_PYTHIA=ON
artifacts:
expire_in: 1 day
paths:
- build
# job/stage to just prepare cmake
config-clang-8:
image: corsika/devel:clang-8
stage: config
tags:
- corsika
script:
- mkdir build
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DWITH_PYTHIA=ON
artifacts:
expire_in: 1 day
paths:
- build
# normal pipeline for each commit
stage: build_test
- cmake --build . -- -j4
- set -o pipefail
- ctest -VV | gzip -v -9 > test.log.gz
artifacts:
expire_in: 1 week
paths:
- build/test.log.gz
# normal pipeline for each commit
- config-clang-8
stage: build_test
- cmake --build . -- -j4
- set -o pipefail
expire_in: 1 week
reports:
junit:
- build/test_outputs/junit*.xml
# optional release pipeline for each commit
release-u-18_04:
image: corsika/devel:u-18.04
dependencies:
- config-u-18_04
stage: optional
- set -o pipefail
- ctest -VV | gzip -v -9 > test.log.gz
artifacts:
expire_in: 1 week
reports:
junit:
- build/test_outputs/junit*.xml
paths:
- build/test.log.gz
# optional release pipeline for each commit
release-clang-8:
image: corsika/devel:clang-8
dependencies:
- config-clang-8
stage: optional
tags:
- corsika
script:
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release
- cmake --build . -- -j4
- set -o pipefail
- ctest -VV | gzip -v -9 > test.log.gz
artifacts:
expire_in: 1 week
reports:
junit:
- build/test_outputs/junit*.xml
paths:
- build/test.log.gz
# the coverage generation should either run when manually requested, OR for all changes on the master
.coverage_job: &coverage_job
image: corsika/devel:u-18.04
dependencies:
- config-u-18_04
stage: optional
tags:
- corsika
script:
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Coverage
- cmake --build . -- -j4
- ctest -j4 -V > test.log
- cmake --build . --target coverage
- tar czf coverage-report.tar.gz coverage-report
artifacts:
paths:
coverage: # special manual job to run after normal pipeline on branch finished
coverage_master: # special job to run on master banch changes
<<: *coverage_job
only:
refs:
- master
- config-u-18_04
- mkdir .public
- cp -r Documentation/Doxygen/html .public/
expire_in: 3 weeks
when: manual
allow_failure: true
sanity:
image: corsika/devel:u-18.04
dependencies:
- config-u-18_04
stage: optional
tags:
- corsika
script:
- cd build
- cmake .. -DWITH_CORSIKA_SANITIZERS_ENABLED=ON
- cmake --build . -- -j4
when: manual
allow_failure: true