uvg266/.gitlab-ci.yml
Arttu Ylä-Outinen 5577c0d64b Enable sanitizers in Gitlab CI
Enables build and test with AddressSanitizer, ThreadSanitizer and
UndefinedBehaviorSanitizer in Gitlab CI configuration. The LeakSanitizer
component of AddressSanitizer is disabled because ptrace cannot be used
inside the container.
2018-06-14 12:11:44 +03:00

68 lines
1.5 KiB
YAML

# Use Kvazaar CI base image which includes the build tools and ffmpeg + hmdec in ${HOME}/bin
image: ultravideo/kvazaar_ci_base:latest
# Build kvazaar
build-kvazaar: &build-template
stage: build
script:
- ./autogen.sh
- ./configure --enable-werror || (cat config.log && false)
- make --jobs=8 V=1
artifacts:
paths:
- src/kvazaar
- src/.libs
expire_in: 1 week
build-asan:
<<: *build-template
variables:
CFLAGS: '-fsanitize=address'
# LeakSanitizer doesn't work inside the container because it requires
# ptrace so we disable it.
ASAN_OPTIONS: 'detect_leaks=0'
build-tsan:
<<: *build-template
variables:
CFLAGS: '-fsanitize=thread'
build-ubsan:
<<: *build-template
variables:
CFLAGS: '-fsanitize=undefined -fno-sanitize-recover=all -fno-sanitize=alignment'
.test-template: &test-template
stage: test
script:
- export PATH="${HOME}/bin:${PATH}"
- ./autogen.sh
- ./configure --enable-werror
- make check --jobs=8 VERBOSE=1
test-valgrind:
<<: *test-template
dependencies:
- build-kvazaar
variables:
KVAZAAR_OVERRIDE_angular_pred: generic
KVAZAAR_OVERRIDE_sao_band_ddistortion: generic
KVAZAAR_OVERRIDE_sao_edge_ddistortion: generic
KVAZAAR_OVERRIDE_calc_sao_edge_dir: generic
KVZ_TEST_VALGRIND: 1
test-asan:
<<: *test-template
dependencies:
- build-asan
test-tsan:
<<: *test-template
dependencies:
- build-tsan
test-ubsan:
<<: *test-template
dependencies:
- build-ubsan