commit 03e8efaeeb6234ca9f7edea108719191e4effb30
parent f6c647f638a2f8da434daadf4fef8fb5d4e3124c
Author: Tim Rühsen <tim.ruehsen@gmx.de>
Date: Thu, 22 Feb 2018 15:43:07 +0100
New file .gitlab-ci.yml
Diffstat:
| A | .gitlab-ci.yml | | | 92 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 92 insertions(+), 0 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
@@ -0,0 +1,92 @@
+# we utilize the images generated by the build-images project, to
+# speed up CI runs. We also use ccache and store config.cache
+# to speed up compilation. We include a version number in cache
+# name to allow expiration of old caches.
+
+cache:
+ key: "$CI_JOB_NAME-ver1"
+ paths:
+ - cache/
+
+before_script:
+ # CCache Config
+ - mkdir -p cache
+ - export CCACHE_BASEDIR=${PWD}
+ - export CCACHE_DIR=${PWD}/cache
+ - export CC="ccache gcc"
+
+after_script:
+ # somehow after_script looses environment
+ - export CCACHE_BASEDIR=${PWD}
+ - export CCACHE_DIR=${PWD}/cache
+ - ccache -s
+
+variables:
+ BUILD_IMAGES_PROJECT: libmicrohttpd/build-images
+ DEBIAN_BUILD: buildenv-debian-stretch
+ GET_SOURCES_ATTEMPTS: "3"
+ CONFIGURE_BASE_FLAGS: --enable-asserts --cache-file cache/config.cache
+ CFLAGS_DEFAULT: -O0 -g -ggdb3
+
+# In this build we combine
+# * gcc
+# * check, distcheck
+gcc/Stretch:
+ image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
+ script:
+ - export CFLAGS=$CFLAGS_DEFAULT
+ - ./bootstrap
+ - ./configure $CONFIGURE_BASE_FLAGS
+ - make -j$(nproc)
+ - make -j$(nproc) check
+ - make -j$(nproc) distcheck
+ tags:
+ - shared
+ artifacts:
+ expire_in: 2 weeks
+ when: on_failure
+ paths:
+ - ./*.log
+ - src/microhttpd/*.log
+
+# In this build we combine
+# * clang
+# * ASan, UBSan
+# * check, distcheck
+Sanitizers/Stretch:
+ image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
+ script:
+ - export CFLAGS="$CFLAGS_DEFAULT -fno-omit-frame-pointer -fsanitize=undefined -fsanitize=address"
+ - ./bootstrap
+ - export CC="ccache clang"
+ - export UBSAN_OPTIONS=print_stacktrace=1
+ - export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-3.8/bin/llvm-symbolizer
+ - ./configure $CONFIGURE_BASE_FLAGS --disable-doc
+ - make -j$(nproc) check
+ - make -j$(nproc) distcheck
+ tags:
+ - shared
+ artifacts:
+ expire_in: 2 weeks
+ when: on_failure
+ paths:
+ - ./*.log
+ - src/microhttpd/*.log
+
+Scan-Build/Debian:
+ image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
+ script:
+ - export CFLAGS=$CFLAGS_DEFAULT
+ - ./bootstrap
+ - scan-build ./configure $CONFIGURE_BASE_FLAGS
+ - scan-build -v -enable-checker security,nullability --status-bugs -o scan-build make -j$(nproc)
+ - scan-build -v -enable-checker security,nullability --status-bugs -o scan-build make -j$(nproc) check
+ tags:
+ - shared
+ except:
+ - tags
+ artifacts:
+ expire_in: 2 weeks
+ when: on_failure
+ paths:
+ - scan-build/*