.gitlab-ci.yml (3198B)
1 # we utilize the images generated by the build-images project, to 2 # speed up CI runs. We also use ccache and store config.cache 3 # to speed up compilation. We include a version number in cache 4 # name to allow expiration of old caches. 5 6 cache: 7 key: "$CI_JOB_NAME-ver1" 8 paths: 9 - cache/ 10 11 before_script: 12 # CCache Config 13 - mkdir -p cache 14 - export CCACHE_BASEDIR="${PWD}" 15 - export CCACHE_DIR="${PWD}/cache" 16 - export CC="ccache gcc" 17 18 after_script: 19 # somehow after_script looses environment 20 - export CCACHE_BASEDIR="${PWD}" 21 - export CCACHE_DIR="${PWD}/cache" 22 - ccache -s 23 24 variables: 25 BUILD_IMAGES_PROJECT: libmicrohttpd/build-images 26 DEBIAN_BUILD: buildenv-debian-stretch 27 MINGW_BUILD: buildenv-debian-mingw 28 GET_SOURCES_ATTEMPTS: "3" 29 CONFIGURE_BASE_FLAGS: --cache-file cache/config.cache 30 CFLAGS_DEFAULT: "" 31 32 # In this build we combine 33 # * gcc 34 # * check 35 gcc/Stretch: 36 image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD 37 script: 38 - export CFLAGS="$CFLAGS_DEFAULT" 39 - ./bootstrap 40 - ./configure $CONFIGURE_BASE_FLAGS --enable-build-type=debug --disable-sanitizers 41 - make -j$(nproc) && make check 42 artifacts: 43 expire_in: 2 weeks 44 when: on_failure 45 paths: 46 - ./*.log 47 - src/*/*.log 48 - src/*/*/*.log 49 50 # In this build we combine 51 # * clang 52 # * ASan, UBSan 53 # * check 54 Sanitizers/Stretch: 55 image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD 56 script: 57 - export CFLAGS="$CFLAGS_DEFAULT" 58 - ./bootstrap 59 - export CC="ccache clang" 60 - export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-3.8/bin/llvm-symbolizer 61 - ./configure $CONFIGURE_BASE_FLAGS --disable-doc --enable-build-type=debug --enable-sanitizers 62 - make -j$(nproc) && make check 63 artifacts: 64 expire_in: 2 weeks 65 when: on_failure 66 paths: 67 - ./*.log 68 - src/*/*.log 69 - src/*/*/*.log 70 71 Scan-Build/Debian: 72 image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD 73 script: 74 - export CFLAGS="$CFLAGS_DEFAULT" 75 - export CC="clang-3.8" 76 - ./bootstrap 77 - scan-build --use-cc=clang-3.8 ./configure $CONFIGURE_BASE_FLAGS --enable-build-type=debug --disable-sanitizers 78 - scan-build --use-cc="ccache clang-3.8" -v -enable-checker security,nullability --status-bugs -o scan-build make -j$(nproc) 79 - scan-build --use-cc="ccache clang-3.8" -v -enable-checker security,nullability --status-bugs -o scan-build make -k check 80 except: 81 - tags 82 artifacts: 83 expire_in: 2 weeks 84 when: on_failure 85 paths: 86 - scan-build/* 87 88 MinGW/Debian: 89 image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD 90 script: 91 - export CFLAGS="$CFLAGS_DEFAULT" 92 - export CC="ccache $PREFIX-gcc" 93 - ./bootstrap 94 - ./configure $CONFIGURE_BASE_FLAGS --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-build-type=release 95 - make -j$(nproc) 96 97 dist/Stretch: 98 image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD 99 script: 100 - export CFLAGS="$CFLAGS_DEFAULT" 101 - ./bootstrap 102 - ./configure $CONFIGURE_BASE_FLAGS --enable-build-type=release 103 - make -j$(nproc) dist 104 artifacts: 105 name: "$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA" 106 expire_in: 2 weeks 107 when: on_success 108 paths: 109 - ./libmicrohttpd-*.*.*.tar.??