123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- # 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
- MINGW_BUILD: buildenv-debian-mingw
- GET_SOURCES_ATTEMPTS: "3"
- CONFIGURE_BASE_FLAGS: --cache-file cache/config.cache
- CFLAGS_DEFAULT: ""
- # In this build we combine
- # * gcc
- # * check
- gcc/Stretch:
- image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
- script:
- - export CFLAGS="$CFLAGS_DEFAULT"
- - ./bootstrap
- - ./configure $CONFIGURE_BASE_FLAGS --enable-build-type=debug --disable-sanitizers
- - make -j$(nproc) && make check
- artifacts:
- expire_in: 2 weeks
- when: on_failure
- paths:
- - ./*.log
- - src/*/*.log
- - src/*/*/*.log
- # In this build we combine
- # * clang
- # * ASan, UBSan
- # * check
- Sanitizers/Stretch:
- image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
- script:
- - export CFLAGS="$CFLAGS_DEFAULT"
- - ./bootstrap
- - export CC="ccache clang"
- - export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-3.8/bin/llvm-symbolizer
- - ./configure $CONFIGURE_BASE_FLAGS --disable-doc --enable-build-type=debug --enable-sanitizers
- - make -j$(nproc) && make check
- artifacts:
- expire_in: 2 weeks
- when: on_failure
- paths:
- - ./*.log
- - src/*/*.log
- - src/*/*/*.log
- Scan-Build/Debian:
- image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
- script:
- - export CFLAGS="$CFLAGS_DEFAULT"
- - ln -s "$(which ccache)" "$(pwd)/clang-3.8"
- - export CC="$(pwd)/clang-3.8"
- - ./bootstrap
- - ./configure $CONFIGURE_BASE_FLAGS --enable-build-type=debug --disable-sanitizers
- - (cd src/include/ && make) # options-generator is badly broken
- - scan-build --use-cc="$CC" -v -enable-checker security,nullability --status-bugs -o scan-build make -j$(nproc)
- - scan-build --use-cc="$CC" -v -enable-checker security,nullability --status-bugs -o scan-build make -k check
- except:
- - tags
- artifacts:
- expire_in: 2 weeks
- when: on_failure
- paths:
- - scan-build/*
- # ! Cross-compiling is broken currently due to options-generator
- #MinGW/Debian:
- # image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
- # script:
- # - export CFLAGS="$CFLAGS_DEFAULT"
- # - export CC="ccache $PREFIX-gcc"
- # - ./bootstrap
- # - ./configure $CONFIGURE_BASE_FLAGS --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-build-type=release
- # - make -j$(nproc)
- dist/Stretch:
- image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
- script:
- - export CFLAGS="$CFLAGS_DEFAULT"
- - ./bootstrap
- - ./configure $CONFIGURE_BASE_FLAGS --enable-build-type=release
- - make -j$(nproc) dist
- artifacts:
- name: "$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA"
- expire_in: 2 weeks
- when: on_success
- paths:
- - ./libmicrohttpd-*.*.*.tar.??
|