|
@@ -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/*
|