| variables: |
| BUILD_IMAGES_PROJECT: gnutls/build-images |
| FEDORA_BUILD: buildenv-fedora33 |
| DEBIAN_X86_CROSS_BUILD: buildenv-debian-x86-cross |
| GET_SOURCES_ATTEMPTS: "3" |
| |
| # See http://doc.gitlab.com/ce/ci/yaml/ for documentation. |
| x86-64: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| stage: build |
| script: |
| - yum remove -y libtasn1-devel |
| - ./bootstrap |
| - ./configure --disable-doc && make -j$(nproc) |
| - make syntax-check |
| - make -j$(nproc) check |
| - make abi-check |
| - make distcheck |
| except: |
| - tags |
| tags: |
| - shared |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - libtasn1-*.tar.gz |
| - ./*.log |
| - ./tests/*.log |
| artifacts: |
| expire_in: 1 week |
| when: on_success |
| paths: |
| - libtasn1-*.tar.gz |
| |
| Debian-oldstable-bootstrap: |
| image: debian:oldstable-slim |
| stage: build |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make git autoconf automake libtool bison texinfo texlive texlive-generic-recommended texlive-extra-utils help2man gtk-doc-tools valgrind abigail-tools |
| script: |
| - ./bootstrap |
| - ./configure --enable-gcc-warnings |
| - make -j$(nproc) |
| - make -j$(nproc) check |
| - make distcheck |
| artifacts: |
| expire_in: 2 weeks |
| when: on_success |
| paths: |
| - libtasn1-*.tar.gz |
| |
| Debian-stable-bootstrap: |
| image: debian:stable-slim |
| stage: build |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make git autoconf automake libtool bison texinfo texlive texlive-generic-recommended texlive-extra-utils help2man gtk-doc-tools valgrind abigail-tools |
| script: |
| - ./bootstrap |
| - ./configure --enable-gcc-warnings |
| - make -j$(nproc) |
| - make -j$(nproc) check |
| - make abi-check |
| - make distcheck |
| artifacts: |
| expire_in: 2 weeks |
| when: on_success |
| paths: |
| - libtasn1-*.tar.gz |
| |
| Debian-testing-bootstrap: |
| image: debian:testing-slim |
| stage: build |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make git autoconf automake libtool bison texinfo texlive texlive-plain-generic texlive-extra-utils help2man gtk-doc-tools valgrind abigail-tools |
| script: |
| - ./bootstrap |
| - ./configure --enable-gcc-warnings |
| - make -j$(nproc) |
| - make -j$(nproc) check |
| - make abi-check |
| - make distcheck |
| artifacts: |
| expire_in: 2 weeks |
| when: on_success |
| paths: |
| - libtasn1-*.tar.gz |
| |
| valgrind/werror: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - yum remove -y libtasn1-devel |
| - ./bootstrap |
| - CFLAGS="-O2 -g -Werror" ./configure --disable-doc --enable-valgrind-tests && make -j$(nproc) |
| - make -j$(nproc) check |
| except: |
| - tags |
| tags: |
| - shared |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - ./*.log |
| - ./tests/*.log |
| |
| x86: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_X86_CROSS_BUILD |
| script: |
| - build=$(dpkg-architecture -qDEB_HOST_GNU_TYPE) |
| - host=i686-linux-gnu |
| - export CC_FOR_BUILD="gcc" |
| - export CC="$host-gcc" |
| - ./bootstrap |
| - mkdir -p build |
| - cd build |
| - dash ../configure --build=$build --host=$host --disable-doc |
| - make -j$(nproc) |
| - make check -j$(nproc) |
| - cd .. |
| tags: |
| - shared |
| - docker |
| except: |
| - tags |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - build/*.log |
| - build/tests/*.log |
| |
| clang: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - yum remove -y libtasn1-devel |
| - ./bootstrap |
| - CC=clang ./configure --disable-doc --disable-valgrind-tests && make -j$(nproc) |
| - make check -j$(nproc) |
| except: |
| - tags |
| tags: |
| - shared |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - ./*.log |
| - ./tests/*.log |
| |
| asan: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - yum remove -y libtasn1-devel |
| - ./bootstrap |
| - CFLAGS="-fsanitize=address -g -O2" LDFLAGS="-static-libasan" ./configure --disable-doc --disable-valgrind-tests && make -j$(nproc) && make check -j$(nproc) |
| except: |
| - tags |
| tags: |
| - shared |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - ./*.log |
| - ./tests/*.log |
| |
| ubsan: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - yum remove -y libtasn1-devel |
| - ./bootstrap |
| - CFLAGS="-fsanitize=undefined -fno-sanitize-recover -g -O2" ./configure --disable-doc --disable-valgrind-tests && make -j$(nproc) && make check -j$(nproc) |
| tags: |
| - shared |
| except: |
| - tags |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - ./*.log |
| - ./tests/*.log |
| |
| MinGW32: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - dnf install -y wine.i686 mingw32-gcc util-linux |
| - dnf remove -y mingw32-libtasn1 |
| - 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 && rm -f tests/suite/mini-eagain2.c && mkdir -p build && cd build && |
| mingw32-configure --disable-doc --disable-valgrind-tests && |
| mingw32-make -j$(nproc) && mingw32-make -C tests check -j$(nproc) |
| tags: |
| - shared |
| - docker |
| except: |
| - tags |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - build/*.log |
| - build/tests/*.log |
| - build/tests/*/*.log |
| |
| gnutls: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - yum remove -y libtasn1-devel |
| - ./bootstrap |
| - ./configure --disable-doc --prefix=/usr --libdir=/usr/lib64 && |
| make -j$(nproc) && make install |
| - git clone --depth 1 --branch master https://gitlab.com/gnutls/gnutls.git gnutls-git |
| - cd gnutls-git && git submodule update --init && ./bootstrap && |
| ./configure --disable-cxx --disable-guile --disable-doc && make -j$(nproc) && |
| make -j $(nproc) check |
| tags: |
| - shared |
| except: |
| - tags |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - gnutls-git/guile/tests/*.log |
| - gnutls-git/tests/*.log |
| - gnutls-git/*.log |
| - gnutls-git/tests/*/*.log |
| - gnutls-git/tests/suite/*/*.log |
| |
| static-analyzers: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - ./bootstrap |
| - scan-build ./configure --disable-doc |
| - make -j$(nproc) syntax-check |
| - make -j$(nproc) -C lib/gl |
| - make -j$(nproc) -C lib ASN1.lo |
| - scan-build --status-bugs -o scan-build-lib make -j$(nproc) -C lib |
| tags: |
| - shared |
| except: |
| - tags |
| artifacts: |
| expire_in: 1 week |
| when: on_failure |
| paths: |
| - scan-build-lib/ |
| |
| Debian-oldstable-distcheck: |
| image: debian:oldstable-slim |
| stage: test |
| needs: [x86-64] |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make gcc gtk-doc-tools texinfo texlive texlive-generic-recommended texlive-extra-utils |
| script: |
| - tar xfa libtasn1-*.tar.gz |
| - cd `ls -d libtasn1-* | grep -v tar.gz` |
| - ./configure --enable-gcc-warnings || (cat config.log; exit 1) |
| - make distcheck V=1 || (find . -name test-suite.log -exec cat {} +; exit 1) |
| artifacts: |
| expire_in: 2 weeks |
| paths: |
| - libtasn1-*.tar.gz |
| |
| Debian-stable-distcheck: |
| image: debian:stable-slim |
| stage: test |
| needs: [x86-64] |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make gcc gtk-doc-tools texinfo texlive texlive-plain-generic |
| script: |
| - tar xfa libtasn1-*.tar.gz |
| - cd `ls -d libtasn1-* | grep -v tar.gz` |
| - ./configure --enable-gcc-warnings || (cat config.log; exit 1) |
| - make distcheck V=1 || (find . -name test-suite.log -exec cat {} +; exit 1) |
| artifacts: |
| expire_in: 2 weeks |
| paths: |
| - libtasn1-*.tar.gz |
| |
| Debian-testing-distcheck: |
| image: debian:testing-slim |
| stage: test |
| needs: [x86-64] |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make gcc gtk-doc-tools texinfo texlive texlive-plain-generic |
| script: |
| - tar xfa libtasn1-*.tar.gz |
| - cd `ls -d libtasn1-* | grep -v tar.gz` |
| - ./configure --enable-gcc-warnings || (cat config.log; exit 1) |
| - make distcheck V=1 || (find . -name test-suite.log -exec cat {} +; exit 1) |
| artifacts: |
| expire_in: 2 weeks |
| paths: |
| - libtasn1-*.tar.gz |
| |
| Ubuntu-latest-distcheck: |
| image: ubuntu:latest |
| stage: test |
| needs: [x86-64] |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make gcc gtk-doc-tools texinfo texlive texlive-plain-generic |
| script: |
| - tar xfa libtasn1-*.tar.gz |
| - cd `ls -d libtasn1-* | grep -v tar.gz` |
| - ./configure --enable-gcc-warnings || (cat config.log; exit 1) |
| - make distcheck V=1 || (find . -name test-suite.log -exec cat {} +; exit 1) |
| artifacts: |
| expire_in: 2 weeks |
| paths: |
| - libtasn1-*.tar.gz |
| |
| Ubuntu-rolling-distcheck: |
| image: ubuntu:rolling |
| stage: test |
| needs: [x86-64] |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make gcc gtk-doc-tools texinfo texlive texlive-plain-generic |
| script: |
| - tar xfa libtasn1-*.tar.gz |
| - cd `ls -d libtasn1-* | grep -v tar.gz` |
| - ./configure --enable-gcc-warnings || (cat config.log; exit 1) |
| - make distcheck V=1 || (find . -name test-suite.log -exec cat {} +; exit 1) |
| artifacts: |
| expire_in: 2 weeks |
| paths: |
| - libtasn1-*.tar.gz |
| |
| # Target to run code coverage on non-master branches. That is intended |
| # to ensure that compilation in master will not break the pages rule. |
| pages-test: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - ./bootstrap |
| - ./configure --enable-gtk-doc --disable-gcc-warnings --enable-code-coverage |
| - mkdir -p public |
| - make -j$(nproc) |
| - make -j$(nproc) check |
| - make local-code-coverage-output || true |
| - make -C doc libtasn1.html libtasn1.pdf |
| - mv doc/libtasn1.pdf doc/libtasn1.html public/ |
| - cp -ar GNU*-coverage/ public/coverage |
| - cp public/libtasn1.html public/index.html |
| tags: |
| - shared |
| except: |
| - master |
| |
| pages: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - ./bootstrap |
| - CFLAGS="-g -Og" dash ./configure --disable-doc --enable-code-coverage --enable-gtk-doc --disable-gcc-warnings |
| - mkdir -p public |
| - make -j$(nproc) |
| - make -j$(nproc) check |
| - make local-code-coverage-output || true |
| - make -C doc libtasn1.html libtasn1.pdf |
| - mv doc/libtasn1.pdf doc/libtasn1.html public/ |
| - cp -ar GNU*-coverage/ public/coverage |
| - cp public/libtasn1.html public/index.html |
| tags: |
| - shared |
| artifacts: |
| when: on_success |
| paths: |
| - public |
| only: |
| - master |