mirror of
https://github.com/mirror/wget.git
synced 2025-03-25 01:00:13 +08:00
Updated Gitlab CI Pipeline
* .gitlab-ci.yml: COmpletely overhauled CI pipeline with dependencies for a faster and more robust CI.
This commit is contained in:
parent
affad27664
commit
61df89eb91
860
.gitlab-ci.yml
860
.gitlab-ci.yml
@ -1,14 +1,15 @@
|
||||
# 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.
|
||||
# to speed up compilation.
|
||||
|
||||
stages:
|
||||
- stage1-testing
|
||||
- stage2-tarball
|
||||
- bootstrap
|
||||
- test
|
||||
- deploy-test
|
||||
- deploy
|
||||
|
||||
cache:
|
||||
key: "$CI_JOB_NAME-ver5"
|
||||
key: "$CI_JOB_NAME"
|
||||
paths:
|
||||
- cache/
|
||||
|
||||
@ -28,432 +29,477 @@ after_script:
|
||||
|
||||
variables:
|
||||
BUILD_IMAGES_PROJECT: gnuwget/build-images
|
||||
DEBIAN_BUILD: buildenv-debian-stretch
|
||||
CI_BASE_PATH: $CI_REGISTRY/$BUILD_IMAGES_PROJECT/wget
|
||||
DEBIAN_OLDSTABLE_BUILD: buildenv-debian-oldstable
|
||||
DEBIAN_TESTING_BUILD: buildenv-debian-testing
|
||||
DEBIAN_STABLE_BUILD: buildenv-debian-stable
|
||||
CENTOS_OLDLTS_BUILD: buildenv-centos7
|
||||
FEDORA_BUILD: buildenv-fedora
|
||||
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
|
||||
CFLAGS_DEFAULT: -O2 -g -ggdb3
|
||||
|
||||
|
||||
VPATH/Debian:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
||||
script:
|
||||
- contrib/spell-checker
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- ./bootstrap --skip-po && touch .manywarnings
|
||||
- autoreconf -ivf
|
||||
- mkdir vpath && cd vpath
|
||||
- ../configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make -j$(nproc)
|
||||
- make -j$(nproc) distcheck
|
||||
- mv wget-*.gz ..
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_success
|
||||
paths:
|
||||
- wget-*.gz
|
||||
# Debian Builds
|
||||
|
||||
# In this build we combine
|
||||
# * syntax-check
|
||||
# * abi-check
|
||||
# * build/valgrind-check
|
||||
# * build/asan-check
|
||||
# * build w/Werror and ubsan-check
|
||||
OpenSSL/Debian:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
||||
script:
|
||||
- echo "127.0.0.1 wgettestingserver" >>/etc/hosts
|
||||
- cat /etc/hosts
|
||||
- alias make="make -j$(nproc)"
|
||||
- ./bootstrap --skip-po
|
||||
- autoreconf -ivf
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --with-ssl=openssl
|
||||
- make syntax-check
|
||||
- make check
|
||||
- make distcheck
|
||||
- make check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
Debian-Testing:
|
||||
stage: bootstrap
|
||||
image: $CI_BASE_PATH/debian:testing-bootstrap
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- ./bootstrap --skip-po && touch .manywarnings
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_success
|
||||
paths:
|
||||
- ./
|
||||
exclude:
|
||||
- cache
|
||||
- cache/*
|
||||
- cache/**
|
||||
|
||||
GnuTLS/Debian:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
||||
script:
|
||||
- echo "127.0.0.1 wgettestingserver" >>/etc/hosts
|
||||
- cat /etc/hosts
|
||||
- alias make="make -j$(nproc)"
|
||||
- ./bootstrap --skip-po
|
||||
- autoreconf -ivf
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --with-ssl=gnutls
|
||||
- make syntax-check
|
||||
- make check
|
||||
- make distcheck
|
||||
- make check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
Build-Tarball:
|
||||
stage: test
|
||||
image: $CI_BASE_PATH/debian:testing-bootstrap
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- mkdir vpath && cd vpath
|
||||
- ../configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache --without-ssl
|
||||
- make -j$(nproc) syntax-check
|
||||
- make -j$(nproc) dist
|
||||
- mv wget-*.gz ..
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Debian-Testing
|
||||
needs: ["Debian-Testing"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- vpath/*.log
|
||||
- vpath/fuzz/*.log
|
||||
- vpath/tests/*.log
|
||||
- vpath/testenv/*.log
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_success
|
||||
paths:
|
||||
- wget-*.gz
|
||||
|
||||
Minimal/Debian:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- ./bootstrap --skip-po
|
||||
- autoreconf -ivf
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
--disable-nls --without-ssl --enable-ipv6 --without-zlib --without-libiconv-prefix
|
||||
--disable-iri --disable-ntlm --disable-pcre --without-libpsl --without-libuuid
|
||||
--without-libintl-prefix
|
||||
- make -j$(nproc)
|
||||
- make -j$(nproc) check
|
||||
- make check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
Valgrind:
|
||||
stage: test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Debian-Testing
|
||||
needs: ["Debian-Testing"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
# In this build we combine
|
||||
# * clang
|
||||
# * ASan, UBSan
|
||||
# * check, syntax-check
|
||||
Sanitizers/Debian:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
script:
|
||||
# - export CFLAGS="$CFLAGS_DEFAULT -Werror"
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./bootstrap --skip-po && touch .manywarnings
|
||||
- autoreconf -ivf
|
||||
- export CC="ccache clang"
|
||||
- export UBSAN_OPTIONS=print_stacktrace=1
|
||||
- export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-8/bin/llvm-symbolizer
|
||||
# - export LSAN_OPTIONS=suppressions="$PWD/tests/clang-asan-suppressions"
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --enable-fsanitize-asan --enable-fsanitize-ubsan
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
Minimal:
|
||||
stage: deploy-test
|
||||
image: $CI_BASE_PATH/debian:testing-minimal
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
--disable-nls --without-ssl --enable-ipv6 --without-zlib --without-libiconv-prefix
|
||||
--disable-iri --disable-ntlm --disable-pcre --without-libpsl --without-libuuid
|
||||
--without-libintl-prefix
|
||||
- make -j$(nproc) check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
Scan-Build/Debian:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- ./bootstrap --skip-po
|
||||
- scan-build ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -C lib -j$(nproc)
|
||||
- scan-build -v -enable-checker nullability --status-bugs -o scan-build make -j$(nproc)
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- tags
|
||||
- coverity-scan@gnuwget/wget
|
||||
allow_failure: true
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- scan-build/*
|
||||
Debian-OldStable:
|
||||
stage: deploy-test
|
||||
image: $CI_BASE_PATH/debian:oldstable
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make
|
||||
- make -j$(nproc) check
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
Valgrind/Debian:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- ./bootstrap --skip-po
|
||||
- autoreconf -ivf
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --enable-valgrind-tests
|
||||
- make -j$(nproc)
|
||||
- make check -j$(nproc)
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- tags
|
||||
- coverity-scan@gnuwget/wget
|
||||
allow_failure: true
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
Debian-Stable:
|
||||
stage: deploy-test
|
||||
image: $CI_BASE_PATH/debian:stable
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make
|
||||
- make -j$(nproc) check
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
Simple/Fedora:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
|
||||
script:
|
||||
# - export CFLAGS="$CFLAGS_DEFAULT -Werror"
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./bootstrap --skip-po && touch .manywarnings
|
||||
- autoreconf -ivf
|
||||
- ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- tags
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
CentOS-OldLTS:
|
||||
stage: deploy-test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS_OLDLTS_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --cache-file ../cache/config.cache
|
||||
- make
|
||||
- make -j$(nproc) check
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
# The test suite is currently broken, so a temporary allowance
|
||||
allow_failure: true
|
||||
needs: ["Build-Tarball"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
#Alpine:
|
||||
# stage: stage1-testing
|
||||
# image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$ALPINE_BUILD
|
||||
# script:
|
||||
# - export CFLAGS="$CFLAGS_DEFAULT"
|
||||
# - ./bootstrap --skip-po
|
||||
# - ./configure $CONFIGURE_BASE_FLAGS
|
||||
# - make -j$(nproc) check
|
||||
# tags:
|
||||
# - shared
|
||||
# except:
|
||||
# - tags
|
||||
# - linux
|
||||
# artifacts:
|
||||
# expire_in: 2 weeks
|
||||
# when: on_failure
|
||||
# paths:
|
||||
# - ./*.log
|
||||
# - fuzz/*.log
|
||||
# - tests/*.log
|
||||
# - testenv/*.log
|
||||
TLS/OpenSSL:
|
||||
stage: test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- echo "127.0.0.1 wgettestingserver" >>/etc/hosts
|
||||
- cat /etc/hosts
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --with-ssl=openssl
|
||||
- make -j$(nproc) distcheck
|
||||
- make check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Debian-Testing
|
||||
needs: ["Debian-Testing"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
|
||||
pages:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_BUILD
|
||||
script:
|
||||
- mkdir -p public
|
||||
- ./bootstrap --skip-po
|
||||
- autoreconf -ivf
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -j$(nproc) check-coverage
|
||||
TLS/GnuTLS:
|
||||
stage: test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- echo "127.0.0.1 wgettestingserver" >>/etc/hosts
|
||||
- cat /etc/hosts
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --with-ssl=gnutls
|
||||
- make -j$(nproc) distcheck
|
||||
- make check-valgrind
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Debian-Testing
|
||||
needs: ["Debian-Testing"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
|
||||
# Tarball
|
||||
- make dist
|
||||
- mv wget-*.gz public/wget-latest.tar.gz
|
||||
|
||||
# Test suite coverage report
|
||||
- rm -rf public/coverage
|
||||
- mv lcov public/coverage
|
||||
Sanitizers:
|
||||
stage: test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
# - export CFLAGS="$CFLAGS_DEFAULT -Werror"
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- export CC="ccache clang"
|
||||
- export UBSAN_OPTIONS=print_stacktrace=1
|
||||
- export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-8/bin/llvm-symbolizer
|
||||
# - export LSAN_OPTIONS=suppressions="$PWD/tests/clang-asan-suppressions"
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --enable-fsanitize-asan --enable-fsanitize-ubsan
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
dependencies:
|
||||
- Debian-Testing
|
||||
needs: ["Debian-Testing"]
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
|
||||
# Online Documentation
|
||||
- make -C doc html
|
||||
- rm -rf public/reference
|
||||
- mv doc/wget.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
|
||||
- linux
|
||||
artifacts:
|
||||
when: on_success
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
- master
|
||||
# Maybe we should run scan-build on a tarball build?
|
||||
Scan-Build:
|
||||
stage: test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- rm .manywarnings
|
||||
- scan-build ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -C lib -j$(nproc)
|
||||
- scan-build -v -enable-checker nullability --keep-empty --status-bugs -o scan-build make -j$(nproc)
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- tags
|
||||
- coverity-scan@gnuwget/wget
|
||||
allow_failure: true
|
||||
dependencies:
|
||||
- Debian-Testing
|
||||
needs: ["Debian-Testing"]
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- scan-build
|
||||
|
||||
CoverageReports:
|
||||
stage: test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_TESTING_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -j$(nproc) check-coverage
|
||||
- mv lcov test-coverage
|
||||
- make -C doc html
|
||||
- make -j$(nproc) fuzz-coverage
|
||||
- mv lcov fuzz-coverage
|
||||
- make dist
|
||||
- mv wget-*.gz wget-latest.tar.gz
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
dependencies:
|
||||
- Debian-Testing
|
||||
needs: ["Debian-Testing"]
|
||||
artifacts:
|
||||
when: on_success
|
||||
paths:
|
||||
- wget-latest.tar.gz
|
||||
- test-coverage/
|
||||
- fuzz-coverage/
|
||||
only:
|
||||
- master
|
||||
|
||||
ArchLinux:
|
||||
stage: test
|
||||
image: $CI_BASE_PATH/archlinux
|
||||
script:
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./bootstrap --skip-po && touch .manywarnings
|
||||
- ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -j$(nproc)
|
||||
- make check -j$(nproc)
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
needs: []
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
|
||||
Fedora:
|
||||
stage: test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
|
||||
script:
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./bootstrap --skip-po && touch .manywarnings
|
||||
- ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -j$(nproc) check
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
needs: []
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
|
||||
MinGW64:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
|
||||
script:
|
||||
# - apt-get install libhttp-daemon-perl libio-socket-ssl-perl python3
|
||||
- mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc &&
|
||||
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
|
||||
- ./bootstrap --skip-po
|
||||
- autoreconf -ivf
|
||||
# - cp pthread_sigmask.c.mingw lib/pthread_sigmask.c
|
||||
- export CC="ccache $PREFIX-gcc"
|
||||
- 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"
|
||||
- LIBS="-ldl -lpsapi" ./configure $CONFIGURE_BASE_FLAGS --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared
|
||||
- make -j$(nproc)
|
||||
- make clean
|
||||
- LIBS="-ldl -lpsapi" ./configure $CONFIGURE_BASE_FLAGS --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --disable-threads
|
||||
- make -j$(nproc)
|
||||
- cp -p src/wget.exe src/wget
|
||||
- make check -j$(nproc) LOG_COMPILER=wine
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- tags
|
||||
- coverity-scan@gnuwget/wget
|
||||
allow_failure: true
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./config.h
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
|
||||
Build/Arch:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$ARCH_BUILD
|
||||
script:
|
||||
- export CFLAGS="$CFLAGS_DEFAULT"
|
||||
- ./bootstrap --skip-po && touch .manywarnings
|
||||
- autoreconf -vif
|
||||
- ./configure $CONFIGURE_BASE_FLAGS
|
||||
- make -j$(nproc)
|
||||
- make check -j$(nproc)
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- ./*.log
|
||||
- fuzz/*.log
|
||||
- tests/*.log
|
||||
- testenv/*.log
|
||||
stage: deploy-test
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc &&
|
||||
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*/
|
||||
- export CFLAGS=$CFLAGS_DEFAULT
|
||||
- export CC="ccache $PREFIX-gcc"
|
||||
- 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"
|
||||
- LIBS="-ldl -lpsapi" ./configure $CONFIGURE_BASE_FLAGS --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared
|
||||
- make -j$(nproc)
|
||||
- cp -p src/wget.exe src/wget
|
||||
- make check -j$(nproc) LOG_COMPILER=wine
|
||||
dependencies:
|
||||
- Build-Tarball
|
||||
needs: ["Build-Tarball"]
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
except:
|
||||
- tags
|
||||
- coverity-scan@gnuwget/wget
|
||||
allow_failure: true
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/./config.h
|
||||
- wget-*/./*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
|
||||
# Test building from tarball in a minimal non-dev environment
|
||||
Tarball:
|
||||
stage: stage2-tarball
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$BASIC_BUILD
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- apk add perl
|
||||
# remove all files from git repo
|
||||
- mv wget-*.gz /tmp
|
||||
- rm -rf * .git* .travis*
|
||||
- mv /tmp/wget-*.gz .
|
||||
# unpack and build from tarball
|
||||
- tar xvf wget-*.gz
|
||||
- cd wget-*
|
||||
- unset CC
|
||||
- ./configure $CONFIGURE_BASE_FLAGS --with-ssl=no
|
||||
- make -j$(nproc)
|
||||
# make check doesn't work due to incomplete perl installation
|
||||
# - make -j$(nproc) check
|
||||
# check if essential files are accidentally cleaned
|
||||
- make clean
|
||||
- make -j$(nproc)
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
dependencies:
|
||||
- VPATH/Debian
|
||||
except:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 2 weeks
|
||||
when: on_failure
|
||||
paths:
|
||||
- wget-*/*.log
|
||||
- wget-*/fuzz/*.log
|
||||
- wget-*/tests/*.log
|
||||
- wget-*/testenv/*.log
|
||||
|
||||
coverity:
|
||||
stage: stage1-testing
|
||||
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
|
||||
script:
|
||||
- wget https://scan.coverity.com/download/linux64 --post-data "token=$COVERITY_SCAN_TOKEN&project=$COVERITY_SCAN_PROJECT_NAME" -O /tmp/coverity_tool.tgz
|
||||
- tar xfz /tmp/coverity_tool.tgz
|
||||
- ./bootstrap --skip-po
|
||||
- autoreconf -ivf
|
||||
- CFLAGS="-g -Og" ./configure --cache-file cache/config.cache --disable-doc
|
||||
- cov-analysis-linux64-*/bin/cov-build --dir cov-int make -j$(nproc)
|
||||
- tar cfz cov-int.tar.gz cov-int
|
||||
- curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME
|
||||
--form token=$COVERITY_SCAN_TOKEN --form email=tim.ruehsen@gmx.de
|
||||
--form file=@cov-int.tar.gz --form version="`git describe --tags`"
|
||||
--form description="CI build"
|
||||
tags:
|
||||
- shared
|
||||
- linux
|
||||
only:
|
||||
- coverity-scan@gnuwget/wget
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
when: on_failure
|
||||
paths:
|
||||
- cov-int/*.txt
|
||||
pages:
|
||||
stage: deploy
|
||||
script:
|
||||
- mkdir -p public
|
||||
- rm -rf public/reference public/coverage public/fuzz-coverage
|
||||
- mv wget-latest.tar.gz public/
|
||||
- mv test-coverage public/coverage
|
||||
- mv fuzz-coverage public/fuzz-coverage
|
||||
- mv scan-build public/scan-build
|
||||
dependencies:
|
||||
- CoverageReports
|
||||
- Scan-Build
|
||||
artifacts:
|
||||
when: on_success
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
- master
|
||||
|
Loading…
Reference in New Issue
Block a user