blob: a297d36e1b8885cea20d8b78190d5fcf586cdc7c [file] [log] [blame]
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-bootstrap:
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
Mingw32:
image: debian:11-slim
stage: test
needs: [Debian11-bootstrap]
before_script:
- dpkg --add-architecture i386
- apt-get update -qq
- env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make mingw-w64 wine wine32 libwine libwine:i386 binfmt-support wine-binfmt
- update-binfmts --enable wine
script:
- tar xfa libtasn1-*.tar.gz
- cd `ls -d libtasn1-* | grep -v tar.gz`
- ./configure --host=i686-w64-mingw32 CC='i686-w64-mingw32-gcc -static-libgcc' --enable-gcc-warnings || (cat config.log; exit 1)
- make check V=1 || (find . -name test-suite.log -exec cat {} +; exit 1)
Mingw64:
image: debian:11-slim
stage: test
needs: [Debian11-bootstrap]
before_script:
- apt-get update -qq
- env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make mingw-w64 wine wine64 binfmt-support wine-binfmt
- update-binfmts --enable wine
script:
- tar xfa libtasn1-*.tar.gz
- cd `ls -d libtasn1-* | grep -v tar.gz`
- ./configure --host=x86_64-w64-mingw32 --enable-gcc-warnings || (cat config.log; exit 1)
- make check V=1 || (find . -name test-suite.log -exec cat {} +; exit 1)
Alpine:
image: alpine:latest
stage: test
needs: [Debian11-bootstrap]
before_script:
- echo "ipv6" >> /etc/modules
- apk update
- apk add build-base
script:
- tar xfa libtasn1-*.tar.gz
- cd `ls -d libtasn1-* | grep -v tar.gz`
- ./configure --enable-gcc-warnings || (cat config.log; exit 1)
- make check V=1 || (find . -name test-suite.log -exec cat {} +; exit 1)
ArchLinux:
image: archlinux:latest
stage: test
needs: [Debian11-bootstrap]
before_script:
- pacman -Sy --noconfirm make gcc diffutils
script:
- tar xfa libtasn1-*.tar.gz
- cd `ls -d libtasn1-* | grep -v tar.gz`
- ./configure --enable-gcc-warnings || (cat config.log; exit 1)
- make check V=1 || (find . -name test-suite.log -exec cat {} +; exit 1)
CentOS7-distcheck:
image: centos:7
stage: test
needs: [Debian11-bootstrap]
before_script:
- yum -y install make gcc diffutils valgrind gtk-doc texinfo
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 TEXI2DVI=true || (find . -name test-suite.log -exec cat {} +; exit 1)
artifacts:
expire_in: 2 weeks
paths:
- libtasn1-*.tar.gz
Debian8-distcheck:
image: debian/eol:jessie
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
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 TEXI2DVI=true || (find . -name test-suite.log -exec cat {} +; exit 1)
artifacts:
expire_in: 2 weeks
paths:
- libtasn1-*.tar.gz
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: [Debian11-bootstrap]
before_script:
- apt-get update -qq
- env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make gcc gtk-doc-tools texinfo
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: [Debian11-bootstrap]
before_script:
- apt-get update -qq
- env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make gcc gtk-doc-tools texinfo
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: [Debian11-bootstrap]
before_script:
- apt-get update -qq
- env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq make gcc gtk-doc-tools texinfo
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