summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorDarshit Shah <darnir@gnu.org>2021-03-14 00:49:16 +0100
committerDarshit Shah <darnir@gnu.org>2021-06-06 02:39:17 +0200
commit61df89eb916bd31efd47a142c95d93d17314a517 (patch)
tree725c48f0600a4f70f5ac59ad6e0c731dea04a51a /.gitlab-ci.yml
parentaffad27664afccdedafd94711d350f368e859be4 (diff)
downloadwget-61df89eb916bd31efd47a142c95d93d17314a517.tar.gz
Updated Gitlab CI Pipeline
* .gitlab-ci.yml: COmpletely overhauled CI pipeline with dependencies for a faster and more robust CI.
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml858
1 files changed, 452 insertions, 406 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d2f78924..e7649db9 100644
--- a/.gitlab-ci.yml
+++ b/.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
-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
+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
-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
+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: 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