Files
wget2/.gitlab-ci.yml
2017-05-15 10:53:31 +02:00

124 lines
3.0 KiB
YAML

variables:
BUILD_IMAGES_PROJECT: gnuwget/build-images
DEBIAN_BUILD: buildenv-debian-stretch
FEDORA_BUILD: buildenv-f25
CENTOS7_BUILD: buildenv-centos7
GET_SOURCES_ATTEMPTS: "3"
CONFIGURE_BASE_FLAGS: --enable-assert
# We organize the CI runners as thus:
# 1. Debian Stretch Build:
# * ASan and UBSan builds
# * make syntax-check
# * make distcheck
#
# 2. Fedora 25 Build
# * LLVM/Clang Build
# * Valgrind Tests
#
# 3. CentOS7 Build
# * Build with musl / newlib
# * Minimal Build (All features disabled)
#
# This way we split most of the different build options across different
# platforms as well. Other builds we would like to have:
#
# 1. Windows
# 2. OSX
# 3. Documentation Generation and Gitlab pages
# 4. Code coverage stats
# In this build we combine
# * syntax-check
# * ASan, UBSan, Msan
# * distcheck
Debian GNU/Linux build:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
script:
- ./bootstrap && touch .manywarnings
- ./configure $CONFIGURE_BASE_FLAGS --enable-fsanitize-asan --enable-fsanitize-ubsan -C
- make -j$(nproc) distcheck
- ./configure -C --enable-fsanitize-msan
- make clean check
tags:
- shared
artifacts:
expire_in: 2 weeks
when: on_failure
paths:
- tests/*.log
clang/Fedora:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- export CC=clang
- ./bootstrap && touch .manywarnings
- ./configure $CONFIGURE_BASE_FLAGS --enable-valgrind-tests
- make -j$(nproc) check
tags:
- shared
except:
- tags
artifacts:
expire_in: 2 weeks
when: on_failure
paths:
- tests/*
#Centos7 build:
# image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS7_BUILD
# script:
# - sed -i 's/AM_GNU_GETTEXT_VERSION(0.19.3)/AM_GNU_GETTEXT_VERSION(0.18.2)/g' configure.ac
# - ./bootstrap && ./configure --enable-gcc-warnings --disable-doc && make -j$(nproc) check
# tags:
# - shared
# artifacts:
# expire_in: 2 weeks
# when: on_failure
# paths:
# - tests/*.log
# - compat_reports/
pages:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
script:
- ./bootstrap
- CFLAGS="-g -O0" ./configure
- make -j$(nproc) check-coverage
- mkdir -p public
- rm -rf public/coverage
- mv lcov public/coverage
- rm -rf public/reference
- mv docs/html public/reference
tags:
- shared
artifacts:
when: on_success
paths:
- public
only:
- master
#MinGW64:
# image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
# before_script:
# - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc &&
# echo ':DOSWin:M::MZ::/usr/bin/wine64:' > /proc/sys/fs/binfmt_misc/register
# script:
# - ./bootstrap
# - mingw64-configure --disable-valgrind-tests --disable-doc
# - mingw64-make -j$(nproc)
# - mingw64-make -j$(nproc) check
# tags:
# - shared
# - docker
# except:
# - tags
# artifacts:
# expire_in: 2 weeks
# when: on_failure
# paths:
# - ./*.log
# - tests/*.log