Tim Rühsen 8 лет назад
Родитель
Сommit
03e8efaeeb
1 измененных файлов с 92 добавлено и 0 удалено
  1. 92 0
      .gitlab-ci.yml

+ 92 - 0
.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/*