diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d45dace4..8b986bd7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,9 +1,63 @@ +# 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-ver4" + paths: + - cache/ + +before_script: + # CCache Config + - mkdir -p cache + - export CCACHE_BASEDIR=${PWD} + - export CCACHE_DIR=${PWD}/cache + - echo $CCACHE_DIR + - export CC="ccache gcc" + +after_script: + # somehow after_script loses environment + - export CCACHE_BASEDIR=${PWD} + - export CCACHE_DIR=${PWD}/cache + - ccache -s + variables: BUILD_IMAGES_PROJECT: gnuwget/build-images DEBIAN_BUILD: buildenv-debian-stretch - FEDORA_BUILD: buildenv-f25 + FEDORA_BUILD: buildenv-f27 CENTOS7_BUILD: buildenv-centos7 + MINGW_BUILD: buildenv-mingw + ALPINE_BUILD: buildenv-alpine + ARCH_BUILD: buildenv-arch + BASIC_BUILD: buildenv-basic GET_SOURCES_ATTEMPTS: "3" + GIT_DEPTH: "5" + CONFIGURE_BASE_FLAGS: --enable-assert --cache-file cache/config.cache + CFLAGS_DEFAULT: -O0 -g -ggdb3 + + +VPATH/Debian: + image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD + script: + - cp -a /builds/common/gnulib . + - export CFLAGS=$CFLAGS_DEFAULT + - ./bootstrap --skip-po && touch .manywarnings + - mkdir vpath && cd vpath + - ../configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache + - make -j$(nproc) + - make -j$(nproc) distcheck + tags: + - shared + - docker + artifacts: + expire_in: 2 weeks + when: on_failure + paths: + - ./*.log + - fuzz/*.log + - tests/*.log + - testenv/*.log # In this build we combine # * syntax-check @@ -18,33 +72,25 @@ Debian GNU/Linux build: - cat /etc/hosts - touch .manywarnings - alias make="make -j$(nproc)" - - ./bootstrap - - ./configure -C + - ./bootstrap --skip-po + - ./configure -C --with-ssl=gnutls - make syntax-check - make check -# - make abi-check - make distcheck - make check-valgrind - ./configure -C --with-ssl=openssl - make clean - make check -# - ./configure -C --enable-fsanitize-asan -# - make clean -# - make check -# - ./configure -C --enable-fsanitize-ubsan -# - make clean -# - make check -# - ./configure -C --enable-fsanitize-msan -# - make clean -# - make check tags: - shared artifacts: expire_in: 2 weeks when: on_failure paths: + - ./*.log + - fuzz/*.log - tests/*.log -# - compat_reports/ + - testenv/*.log #Centos7 build: # image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS7_BUILD