| # 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 -k check |
| tags: |
| - shared |
| - linux |
| 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 -k check |
| tags: |
| - shared |
| - linux |
| 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" |
| - export CC="clang-3.8" |
| - ./bootstrap |
| - scan-build --use-cc=clang-3.8 ./configure $CONFIGURE_BASE_FLAGS --enable-build-type=debug --disable-sanitizers |
| - scan-build --use-cc="ccache clang-3.8" -v -enable-checker security,nullability --status-bugs -o scan-build make -j$(nproc) |
| - scan-build --use-cc="ccache clang-3.8" -v -enable-checker security,nullability --status-bugs -o scan-build make -k check |
| tags: |
| - shared |
| - linux |
| except: |
| - tags |
| artifacts: |
| expire_in: 2 weeks |
| when: on_failure |
| paths: |
| - scan-build/* |
| |
| 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) |
| tags: |
| - shared |
| - linux |
| |
| 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 |
| tags: |
| - shared |
| - linux |
| artifacts: |
| name: "$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA" |
| expire_in: 2 weeks |
| when: on_success |
| paths: |
| - ./libmicrohttpd-*.*.*.tar.?? |