| variables: |
| GIT_SUBMODULE_STRATEGY: normal |
| BUILD_IMAGES_PROJECT: gnutls/build-images |
| FEDORA_BUILD: buildenv-fedora33 |
| 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 dist |
| 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 |
| |
| Debian10-bootstrap: |
| image: debian:10-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 |
| - mkdir b |
| - cd b |
| - ../configure --enable-gcc-warnings |
| - make -j$(nproc) |
| - make -j$(nproc) check |
| - make abi-check |
| - make syntax-check distcheck |
| artifacts: |
| expire_in: 2 weeks |
| when: on_success |
| paths: |
| - b/libtasn1-*.tar.gz |
| |
| Debian11-bootstrap: |
| image: debian:11-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 help2man gtk-doc-tools valgrind abigail-tools |
| script: |
| - ./bootstrap |
| - ./configure --enable-gcc-warnings |
| - make -j$(nproc) |
| - make -j$(nproc) check |
| - make abi-check |
| - make syntax-check dist |
| 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 help2man gtk-doc-tools valgrind abigail-tools |
| script: |
| - ./bootstrap |
| - ./configure --enable-gcc-warnings |
| - make -j$(nproc) |
| - make -j$(nproc) check |
| - make syntax-check 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 |
| |
| 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: |
| when: manual # takes ~1 hour... |
| 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/ |
| |
| armcross: |
| image: debian:11-slim |
| stage: test |
| needs: [Debian11-bootstrap] |
| before_script: |
| - apt-get update -qq |
| - env DEBIAN_FRONTEND=noninteractive apt-get install -y -q make gcc-arm-linux-gnueabi qemu-user qemu-user-binfmt file |
| - update-binfmts --enable qemu-arm |
| script: |
| - tar xfa libtasn1-*.tar.gz |
| - cd `ls -d libtasn1-* | grep -v tar.gz` |
| - mkdir b |
| - cd b |
| - ../configure --host=arm-linux-gnueabi --enable-gcc-warnings CFLAGS="-static --static" || (cat config.log; exit 1) |
| - make V=1 |
| - arm-linux-gnueabi-readelf -h lib/.libs/libtasn1.a |
| - arm-linux-gnueabi-readelf -h src/asn1Parser |
| - file src/asn1Parser |
| - LANG=C.UTF-8 qemu-arm src/asn1Parser -c ../tests/pkix.asn |
| - make check |
| |
| Debian9-distcheck: |
| image: debian:9-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 |
| |
| Debian11-distcheck: |
| image: debian:11-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 |
| |
| .pages: |
| image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD |
| script: |
| - dnf install -y dblatex |
| - ./bootstrap |
| - CFLAGS="-g -Og" dash ./configure --enable-code-coverage --enable-gtk-doc --enable-gtk-doc-pdf --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 |
| - rm -rf public/reference |
| - mv doc/reference/html public/reference |
| - mv doc/reference/libtasn1.pdf public/reference/ |
| - make web-manual |
| - rm -rf public/manual |
| - mv doc/manual public/manual |
| tags: |
| - shared |
| artifacts: |
| when: on_success |
| paths: |
| - public |
| |
| pages: |
| extends: .pages |
| only: |
| - master |
| |
| pages-test: |
| extends: .pages |
| except: |
| - master |