# 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.??
