From 9eb49dd965de73373f5103a9aecca65369b015ba Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Fri, 2 Sep 2016 18:14:34 +0200 Subject: .gitlab-ci.yml: use the gitlab.com shared runners Backported from master branch --- .gitlab-ci.yml | 256 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 206 insertions(+), 50 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 36c5e36640..0dcd680121 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,77 +1,129 @@ -Compile minimal library: +image: fedora:24 + +Compile minimal library and openssl compat: script: - - git submodule update --init && make autoreconf && ./configure --with-included-libtasn1 + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - make autoreconf && ./configure --with-included-libtasn1 --disable-doc --disable-dtls-srtp-support --disable-alpn-support --disable-rsa-export --disable-heartbeat-support --disable-srp-authentication --disable-psk-authentication --disable-anon-authentication --disable-dhe --disable-ecdhe --disable-openpgp-authentication --disable-ocsp --disable-session-tickets --disable-openssl-compatibility --disable-non-suiteb-curves --disable-nls --disable-crywrap --disable-libdane --without-p11-kit --without-tpm - --without-zlib --disable-doc --disable-tests && make -j4 + --disable-ssl3-support --disable-ssl2-support --without-zlib --disable-doc --disable-tests --enable-openssl-compatibility && make -j4 tags: - - nettle3 + - shared except: - tags -Build and Check with asan: - script: - - git submodule update --init && make autoreconf && rm -f tests/suite/mini-eagain2.c &&CFLAGS="-fsanitize=address -g - -O2" LDFLAGS="-static-libasan" ./configure --disable-doc --with-included-libtasn1 --disable-valgrind-tests --disable-non-suiteb-curves --disable-guile - && make -j4 && make check -j4 - tags: - - x86-64 - - nettle3 - except: - - tags -Build and Check - separate build dir (x86): + +Build and Check - without SSL 3.0: script: - - git submodule update --init && make autoreconf && mkdir -p build && cd build && - ../configure --disable-non-suiteb-curves --with-included-libtasn1 --enable-seccomp-tests --disable-doc --disable-valgrind-tests && + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - make autoreconf && mkdir -p build && cd build && + ../configure --disable-ssl3-support --disable-ssl2-support --disable-non-suiteb-curves --enable-seccomp-tests --disable-doc --disable-valgrind-tests && make -j4 && make check -j4 tags: - - x86 - - nettle3 + - shared except: - tags -Build and ABI-check (x86-64): + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/guile/tests/*.log + - build/tests/*.log + - build/tests/*/*.log + +# Needs gnutls' headers due to some abi-checker issue with resolving deps +Build with ABI-check (x86-64): script: - - git submodule update --init && make autoreconf && mkdir -p build && cd build && - ../configure --disable-doc --disable-cxx --disable-guile --disable-non-suiteb-curves && make -j4 && make abi-check + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - dnf install -y gnutls-devel + - make autoreconf && mkdir -p build && cd build && + ../configure --disable-doc --disable-cxx --disable-guile --disable-non-suiteb-curves && make -j4 && make abi-check tags: - - x86-64 - - nettle3 - - abi-checker + - shared except: - tags -Build and Check - clang (x86): + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/logs/gnutls-dane/*/log.txt + - build/logs/gnutls/*/log.txt + +Build and Check - clang: script: - - git submodule update --init && make autoreconf && - CC=clang ./configure --disable-non-suiteb-curves --with-included-libtasn1 --enable-seccomp-tests --disable-doc --disable-valgrind-tests && + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - make autoreconf && + CC=clang ./configure --disable-non-suiteb-curves --enable-seccomp-tests --disable-doc --disable-valgrind-tests && make -j4 && make check -C tests -j4 tags: - - x86 - - nettle3 + - shared except: - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - guile/tests/*.log + - tests/*.log + - tests/*/*.log + Build and Check in FIPS140-2 mode: script: - - git submodule update --init && make autoreconf && mkdir -p build && cd build && - ../configure --disable-non-suiteb-curves --enable-fips140-mode --with-included-libtasn1 --disable-doc --disable-valgrind-tests && + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - make autoreconf && mkdir -p build && cd build && + ../configure --disable-non-suiteb-curves --enable-fips140-mode --disable-doc --disable-valgrind-tests && make -j4 && make check -j4 tags: - - nettle3 + - shared except: - tags -Release build for windows DLLs: + artifacts: + when: on_failure + paths: + - guile/tests/*.log + - build/tests/*.log + - build/tests/*/*.log + +Build and Check with valgrind: script: - - make autoreconf && rm -f tests/suite/mini-eagain2.c && mingw32-configure --enable-local-libopts --without-p11-kit --disable-non-suiteb-curves --disable-doc --disable-valgrind-tests && - mingw32-make -j4 && mingw32-make -C tests check -j4 + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - make autoreconf && rm -f tests/suite/mini-eagain2.c && ./configure + --disable-non-suiteb-curves --disable-doc && make -j4 && make check -j4 tags: - - nettle3 - - wine - - mingw - - linux + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - tests/*.log + - tests/*/*.log + +Release build for windows32 DLLs: + script: + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - dnf install -y wine.i686 mingw32-nettle mingw32-libtasn1 mingw32-gcc mingw32-gmp mingw32-libidn util-linux + - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc + - echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register + - make autoreconf && rm -f tests/suite/mini-eagain2.c && mkdir -p build && cd build && + mingw32-configure --enable-local-libopts --without-p11-kit --disable-non-suiteb-curves --disable-doc --disable-valgrind-tests && + mingw32-make -j4 && mingw32-make -C tests check -j4 + tags: + - shared only: - tags artifacts: + expire_in: 6 months paths: - src/*.exe - lib/.libs/*.dll @@ -79,23 +131,127 @@ Release build for windows DLLs: - lib/*.def - lib/includes/gnutls/*.h - lib/gnutls.pc -Build and Check for windows in separate build dir: + +Release build for windows64 DLLs: script: - - git submodule update --init && make autoreconf && rm -f tests/suite/mini-eagain2.c && mkdir -p build && cd build && + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - dnf install -y wine mingw64-nettle mingw64-libtasn1 mingw64-gcc mingw64-gmp mingw64-libidn util-linux + - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc + - echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register + - make autoreconf && rm -f tests/suite/mini-eagain2.c && mkdir -p build && cd build && + mingw64-configure --enable-local-libopts --without-p11-kit --disable-non-suiteb-curves --disable-doc --disable-valgrind-tests && + mingw64-make -j4 && mingw64-make -C tests check -j4 + tags: + - shared + only: + - tags + artifacts: + expire_in: 6 months + paths: + - src/*.exe + - lib/.libs/*.dll + - lib/.libs/*.a + - lib/*.def + - lib/includes/gnutls/*.h + - lib/gnutls.pc + +Build and Check for windows64 in separate build dir: + script: + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - dnf install -y wine mingw64-nettle mingw64-libtasn1 mingw64-gcc mingw64-gmp mingw32-libidn util-linux + - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc + - echo ':DOSWin:M::MZ::/usr/bin/wine64:' > /proc/sys/fs/binfmt_misc/register + - make autoreconf && rm -f tests/suite/mini-eagain2.c && mkdir -p build && cd build && + mingw64-configure --enable-local-libopts --without-p11-kit --disable-non-suiteb-curves --disable-doc --disable-valgrind-tests && + mingw64-make -j4 && mingw64-make -C tests check -j4 + tags: + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - guile/tests/*.log + - build/tests/*.log + - build/tests/*/*.log + +Build and Check for windows32 in separate build dir: + script: + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools + - dnf install -y clang libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - dnf install -y wine.i686 mingw32-nettle mingw32-libtasn1 mingw32-gcc mingw32-gmp mingw32-libidn util-linux + - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc + - echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register + - make autoreconf && rm -f tests/suite/mini-eagain2.c && mkdir -p build && cd build && mingw32-configure --enable-local-libopts --without-p11-kit --disable-non-suiteb-curves --disable-doc --disable-valgrind-tests && mingw32-make -j4 && mingw32-make -C tests check -j4 tags: - - nettle3 - - wine - - mingw + - shared except: - tags -Build and Check with valgrind: + artifacts: + expire_in: 1 week + when: on_failure + paths: + - guile/tests/*.log + - build/tests/*.log + - build/tests/*/*.log + + +Build and Check on FreeBSD: + script: + - gmake autoreconf && rm -f tests/suite/mini-eagain2.c && LIBS="-L/usr/local/lib" ./configure + --disable-guile --disable-doc --disable-valgrind-tests && gmake -j4 && gmake check -j4 + tags: + - freebsd + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - tests/*.log + - tests/*/*.log + +# We need a clean 32-bit fedora for testing +Build and Check - separate build dir (x86): + image: nickcis/fedora-32:23 script: - - git submodule update --init && make autoreconf && rm -f tests/suite/mini-eagain2.c && ./configure - --disable-non-suiteb-curves --with-included-libtasn1 --disable-doc && make -j4 && make check -j4 + - linux32 dnf install -y autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man xz net-tools libseccomp-devel libubsan libubsan-static nodejs softhsm datefudge lcov openssl-devel dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp abi-compliance-checker valgrind + - make autoreconf && mkdir -p build && cd build && + ../configure --build=i686-redhat-linux --target=i686-redhat-linux --disable-cxx --disable-non-suiteb-curves --enable-seccomp-tests --disable-doc --disable-valgrind-tests && + make -j4 && make check -j4 tags: - - x86-64 - - nettle3 + - shared except: - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - build/*.log + - build/tests/*.log + - build/tests/*/*.log + +# Address sanitizer in fedora 24 cannot read suppression files +Build and Check with asan: + image: fedora:23 + script: + - dnf install -y git autoconf libtool gettext-devel automake autogen nettle-devel p11-kit-devel autogen-libopts-devel trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl libtasn1-tools unbound-devel bison help2man net-tools + - dnf install -y clang libasan-static nodejs softhsm datefudge lcov openssl-devel libasan dieharder mbedtls-utils openssl libcmocka-devel socat xz ppp + - make autoreconf && rm -f tests/suite/mini-eagain2.c && CFLAGS="-fsanitize=address -g -O2" LDFLAGS="-static-libasan" + ./configure --disable-doc --disable-valgrind-tests --disable-non-suiteb-curves --disable-guile && + make -j4 && make check -j4 + tags: + - shared + except: + - tags + artifacts: + expire_in: 1 week + when: on_failure + paths: + - tests/*.log + - tests/*/*.log -- cgit v1.2.1