apt-get update
apt-get -qq -t buster-backports --no-install-recommends install clang-8 llvm-8
- install-coverity-tools:
- description: Install the coverity tools to /usr/local
- steps:
- - run:
- name: Install Coverity tools
- command: curl -s https://scan.coverity.com/download/linux64 --data "token=${COVERITY_TOKEN}&project=${COVERITY_PROJECT}" | gunzip | tar xvf /dev/stdin --strip-components=1 --no-same-owner -C /usr/local
-
# FIXME: the build-essential wart below is misformatted intentionally to remind us to replace the remotebackend testing deps with Debian packages
auth-regress-setup:
description: Prepare the environment for auth regression tests
context: geoip
doroot: false
- coverity-auth:
- docker:
- - image: debian:buster
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - install-auth-dev-deps
- - install-coverity-tools
- - checkout-shallow
- - run:
- name: autoconf
- working_directory: /opt/project/
- command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
- - run:
- name: configure
- working_directory: /opt/project/
- command: |
- CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
- CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
- ./configure \
- --enable-option-checking=fatal \
- --disable-systemd \
- --with-modules='bind lmdb ldap gmysql gsqlite3 gpgsql godbc tinydns' \
- --enable-tools \
- --with-lmdb=/usr \
- --with-libsodium \
- --prefix=/opt/pdns-auth
- - run:
- name: build
- working_directory: /opt/project/
- command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
- - run:
- name: Create Coverity tarball
- working_directory: /opt/project/
- command: tar caf auth.tar.bz2 cov-int
- - run:
- name: Upload tarball to coverity
- working_directory: /opt/project/
- command: |
- curl --form token=${COVERITY_TOKEN} \
- --form email="${COVERITY_EMAIL}" \
- --form file=@auth.tar.bz2 \
- --form version="$(./builder-support/gen-version)" \
- --form description="master build" \
- https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
-
- coverity-dnsdist:
- docker:
- - image: debian:buster
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - run:
- name: Install dependencies
- command: |
- apt-get update && apt-get -qq --no-install-recommends install \
- autoconf \
- automake \
- bison \
- bzip2 \
- ca-certificates \
- curl \
- flex \
- g++ \
- git \
- libboost-all-dev \
- libcap-dev \
- libcdb-dev \
- libedit-dev \
- libfstrm-dev \
- libgnutls28-dev \
- liblmdb-dev \
- libluajit-5.1-dev \
- libnghttp2-dev \
- libre2-dev \
- libsnmp-dev \
- libsodium-dev \
- libssl-dev \
- libsystemd-dev \
- libtool \
- make \
- pkg-config \
- ragel \
- python3-venv
- - install-coverity-tools
- - checkout-shallow
- - run:
- name: autoconf
- command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
- working_directory: /opt/project/pdns/dnsdistdist
- - run:
- name: configure
- command: |
- CFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security" \
- CXXFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
- ./configure \
- --enable-option-checking=fatal \
- --disable-systemd \
- --disable-unit-tests \
- --enable-dnstap \
- --enable-dnscrypt \
- --enable-dns-over-tls \
- --prefix=/opt/dnsdist \
- --with-gnutls \
- --with-libsodium \
- --with-lua=luajit \
- --with-libcap \
- --with-nghttp2 \
- --with-re2
- working_directory: /opt/project/pdns/dnsdistdist
- - run:
- name: build
- command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
- working_directory: /opt/project/pdns/dnsdistdist
- - run:
- name: Create Coverity tarball
- command: tar caf dnsdist.tar.bz2 cov-int
- working_directory: /opt/project/pdns/dnsdistdist
- - run:
- name: Upload tarball to coverity
- working_directory: /opt/project/
- command: |
- curl --form token=${COVERITY_TOKEN} \
- --form email="${COVERITY_EMAIL}" \
- --form file=@pdns/dnsdistdist/dnsdist.tar.bz2 \
- --form version="$(./builder-support/gen-version)" \
- --form description="master build" \
- https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
-
- coverity-recursor:
- docker:
- - image: debian:buster
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - run:
- name: Install dependencies
- command: |
- apt-get update && apt-get -qq --no-install-recommends install \
- autoconf \
- automake \
- ca-certificates \
- curl \
- bison \
- bzip2 \
- flex \
- g++ \
- git \
- libboost-all-dev \
- libcap-dev \
- libcurl4-openssl-dev \
- libluajit-5.1-dev \
- libfstrm-dev \
- libsnmp-dev \
- libsodium-dev \
- libssl-dev \
- libsystemd-dev \
- libtool \
- make \
- pkg-config \
- ragel \
- python3-venv
- - install-coverity-tools
- - checkout-shallow
- - run:
- name: autoconf
- command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
- working_directory: /opt/project/pdns/recursordist
- - run:
- name: configure
- command: |
- CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
- CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
- ./configure \
- --enable-option-checking=fatal \
- --disable-systemd \
- --disable-unit-tests \
- --prefix=/opt/pdns-recursor \
- --with-libsodium \
- --with-lua=luajit \
- --with-libcap \
- --with-net-snmp \
- --enable-dnstap \
- --enable-dns-over-tls
- working_directory: /opt/project/pdns/recursordist
- - run:
- name: build
- command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
- working_directory: /opt/project/pdns/recursordist
- - run:
- name: Create Coverity tarball
- command: tar caf recursor.tar.bz2 cov-int
- working_directory: /opt/project/pdns/recursordist
- - run:
- name: Upload tarball to coverity
- working_directory: /opt/project/
- command: |
- curl --form token=${COVERITY_TOKEN} \
- --form email="${COVERITY_EMAIL}" \
- --form file=@pdns/recursordist/recursor.tar.bz2 \
- --form version="$(./builder-support/gen-version)" \
- --form description="master build" \
- https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
-
workflows:
version: 2
- coverity:
- triggers:
- - schedule:
- cron: "0 0 * * *"
- filters:
- branches:
- only: master
- jobs:
- - coverity-auth:
- context: auth-coverity
- - coverity-dnsdist:
- context: dnsdist-coverity
- - coverity-recursor:
- context: recursor-coverity
build-and-test-all:
jobs: