blob: a4398bcc655934c3b965678289d024450508aaf7 [file] [log] [blame]
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