mirror of
https://gitlab.com/gnuwget/wget2.git
synced 2026-02-01 14:41:08 +00:00
184 lines
4.9 KiB
YAML
184 lines
4.9 KiB
YAML
variables:
|
|
BUILD_IMAGES_PROJECT: gnuwget/build-images
|
|
DEBIAN_BUILD: buildenv-debian-stretch
|
|
FEDORA_BUILD: buildenv-f26
|
|
CENTOS7_BUILD: buildenv-centos7
|
|
MINGW_BUILD: buildenv-mingw
|
|
GET_SOURCES_ATTEMPTS: "3"
|
|
CONFIGURE_BASE_FLAGS: --enable-assert
|
|
CFLAGS_DEFAULT: -O0 -g -ggdb3
|
|
|
|
|
|
# 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
|
|
Sanitizers/Debian:
|
|
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
|
script:
|
|
- export CFLAGS=$CFLAGS_DEFAULT
|
|
- ./bootstrap && touch .manywarnings
|
|
- CC=clang ./configure $CONFIGURE_BASE_FLAGS --enable-fsanitize-asan --enable-fsanitize-ubsan -C
|
|
- make -j$(nproc) check
|
|
- make -j$(nproc) clean
|
|
# memory sanitizer only makes sense when all dependencies are also compiled with it
|
|
# - CC=clang ./configure -C --enable-fsanitize-msan
|
|
# - make -j$(nproc) check
|
|
# - make -j$(nproc) distcheck
|
|
tags:
|
|
- shared
|
|
artifacts:
|
|
expire_in: 2 weeks
|
|
when: on_failure
|
|
paths:
|
|
- ./*.log
|
|
- fuzz/*.log
|
|
- unit-tests/*.log
|
|
- tests/*.log
|
|
|
|
Scan-Build/Debian:
|
|
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
|
script:
|
|
- export CFLAGS=$CFLAGS_DEFAULT
|
|
- ./bootstrap && touch .manywarnings
|
|
- scan-build ./configure $CONFIGURE_BASE_FLAGS --disable-manywarnings
|
|
- make -C lib -j$(nproc)
|
|
- scan-build -v -enable-checker security,nullability --status-bugs -o scan-build make -j$(nproc)
|
|
- scan-build -v -enable-checker security,nullability --status-bugs -o scan-build make -j$(nproc) check
|
|
tags:
|
|
- shared
|
|
except:
|
|
- tags
|
|
artifacts:
|
|
expire_in: 2 weeks
|
|
when: on_failure
|
|
paths:
|
|
- scan-build/*
|
|
|
|
flawfinder/Debian:
|
|
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
|
script:
|
|
- export CFLAGS=$CFLAGS_DEFAULT
|
|
- ./bootstrap && touch .manywarnings
|
|
- ./configure $CONFIGURE_BASE_FLAGS --disable-manywarnings
|
|
- make -j$(nproc)
|
|
- mkdir flawfinder
|
|
- flawfinder -CcQH src/ libwget/ tests/ fuzz/ unit-tests/ > flawfinder/flawfinder.html
|
|
- flawfinder -ICcQH src/ libwget/ tests/ fuzz/ unit-tests/ > flawfinder/flawfinder-inputs.html
|
|
tags:
|
|
- shared
|
|
except:
|
|
- tags
|
|
artifacts:
|
|
expire_in: 2 weeks
|
|
when: always
|
|
paths:
|
|
- flawfinder/*
|
|
|
|
valgrind/Fedora:
|
|
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
|
|
script:
|
|
- export CFLAGS=$CFLAGS_DEFAULT
|
|
- ./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:
|
|
- ./*.log
|
|
- fuzz/*.log
|
|
- unit-tests/*.log
|
|
- tests/*.log
|
|
|
|
#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
|
|
- export CFLAGS=$CFLAGS_DEFAULT
|
|
- ./configure
|
|
- make -j$(nproc) check-coverage
|
|
- mkdir -p public
|
|
# Test suite coverage report
|
|
- rm -rf public/coverage
|
|
- mv lcov public/coverage
|
|
# Online Documentation
|
|
- rm -rf public/reference
|
|
- mv docs/html public/reference
|
|
# Coverage report for all our fuzz corpora
|
|
- make -j$(nproc) fuzz-coverage
|
|
- rm -rf public/fuzz-coverage
|
|
- mv lcov public/fuzz-coverage
|
|
tags:
|
|
- shared
|
|
artifacts:
|
|
when: on_success
|
|
paths:
|
|
- public
|
|
only:
|
|
- master
|
|
|
|
#MinGW64:
|
|
# image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
|
|
# script:
|
|
# - ./bootstrap
|
|
# - export GCCLIB=$(dirname $(find /usr/lib/gcc/$PREFIX -name libgcc_s_seh-1.dll|grep posix))
|
|
# - export WINEPATH="$WINEPATH;/usr/$PREFIX/bin;/usr/$PREFIX/lib;$PWD/libwget/.libs;$GCCLIB"
|
|
# - echo "WINEPATH=$WINEPATH"
|
|
# - ./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared
|
|
# - make -j$(nproc)
|
|
# - make check -j1 LOG_COMPILER=wine
|
|
# tags:
|
|
# - shared
|
|
# - docker
|
|
# except:
|
|
# - tags
|
|
# artifacts:
|
|
# expire_in: 2 weeks
|
|
# when: on_failure
|
|
# paths:
|
|
# - ./*.log
|
|
# - fuzz/*.log
|
|
# - unit-tests/*.log
|
|
# - tests/*.log
|