5 description: "Do a shallow checkout of the repository"
8 name: Install git and openssh
9 command: apt-get update && apt-get -qq -y install openssh-client git
11 name: Store the keyid for the git repo
12 command: mkdir -p $HOME/.ssh && ssh-keyscan $(echo ${CIRCLE_REPOSITORY_URL} | sed 's,.*@\([^:]*\):.*,\1,') > $HOME/.ssh/known_hosts
17 if [ -n "$CIRCLE_PR_NUMBER" ]
19 echo === Checking out PR "$CIRCLE_PR_NUMBER" from "$CIRCLE_REPOSITORY_URL"
20 git clone --depth 1 $CIRCLE_REPOSITORY_URL /opt/project
22 git fetch --depth 1 origin +refs/pull/${CIRCLE_PR_NUMBER}/merge
23 git checkout -qf FETCH_HEAD
25 echo === Checking out branch "${CIRCLE_BRANCH}" from "$CIRCLE_REPOSITORY_URL"
26 git clone --depth 1 --branch $CIRCLE_BRANCH $CIRCLE_REPOSITORY_URL /opt/project
32 description: "Attach workspace to /opt and symlink checkout into home"
35 name: ensure ca-certificates is installed
36 command: apt-get update && apt-get -qq -y install ca-certificates
40 name: symlink checkout into home
41 command: rmdir ~/project && ln -s /opt/project ~/project
43 name: include $BASH_ENV for both interactive and non-interactive shells
44 command: echo '. $BASH_ENV' >> $HOME/.bashrc
46 install-coverity-tools:
47 description: Install the coverity tools to /usr/local
50 name: Install Coverity tools
51 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
54 description: Add ssh known_hosts fingerprints
57 command: mkdir -p $HOME/.ssh && echo "${DOCS_HOST} ${DOCS_FINGERPRINT}" > $HOME/.ssh/known_hosts
60 - "3e:0a:aa:2c:30:69:89:f3:eb:17:c1:3f:3b:78:40:7a"
63 description: Prepare the environment for auth regression tests
68 name: Install test dependencies
70 apt-get -y -qq install \
73 default-jre-headless \
79 name: Install jdnssectools
81 if [ ! -e $HOME/bin/jdnssec-verifyzone ]; then
82 apt-get install -qq -y wget
83 wget https://github.com/dblacka/jdnssec-tools/releases/download/0.14/jdnssec-tools-0.14.tar.gz
84 tar xfz jdnssec-tools-0.14.tar.gz -C $HOME
85 rm jdnssec-tools-0.14.tar.gz
87 echo 'export PATH=$HOME/jdnssec-tools-0.14/bin:$PATH' >> $BASH_ENV
89 name: Allow missing tools in verify-dnssec-zone
90 command: touch regression-tests/tests/verify-dnssec-zone/allow-missing
93 description: Run one auth regression context
109 default: "/opt/pdns-auth/"
112 workdir: ~/project/regression-tests
113 name: Run << parameters.context >> tests
115 [ -e ./vars ] && . ./vars
118 for t in << parameters.skip >>
122 PDNS=<< parameters.prefix >>sbin/pdns_server \
123 PDNS2=<< parameters.prefix >>sbin/pdns_server \
124 SDIG=<< parameters.prefix >>bin/sdig \
125 NOTIFY=<< parameters.prefix >>bin/pdns_notify \
126 NSEC3DIG=<< parameters.prefix >>bin/nsec3dig \
127 SAXFR=<< parameters.prefix >>bin/saxfr \
128 ZONE2SQL=<< parameters.prefix >>bin/zone2sql \
129 ZONE2LDAP=<< parameters.prefix >>bin/zone2ldap \
130 PDNSUTIL=<< parameters.prefix >>bin/pdnsutil \
131 PDNSCONTROL=<< parameters.prefix >>bin/pdns_control \
132 ./start-test-stop 5300 << parameters.context >>
134 condition: << parameters.doroot >>
137 workdir: ~/project/regression-tests.rootzone
138 name: Run << parameters.context >> tests for the root zone
140 [ -e ../regression-tests/vars ] && . ../regression-tests/vars
142 for t in << parameters.rootskip >>
146 PDNS=<< parameters.prefix >>sbin/pdns_server \
147 PDNS2=<< parameters.prefix >>sbin/pdns_server \
148 SDIG=<< parameters.prefix >>bin/sdig \
149 NOTIFY=<< parameters.prefix >>bin/pdns_notify \
150 NSEC3DIG=<< parameters.prefix >>bin/nsec3dig \
151 SAXFR=<< parameters.prefix >>bin/saxfr \
152 ZONE2SQL=<< parameters.prefix >>bin/zone2sql \
153 ZONE2LDAP=<< parameters.prefix >>bin/zone2ldap \
154 PDNSUTIL=<< parameters.prefix >>bin/pdnsutil \
155 PDNSCONTROL=<< parameters.prefix >>bin/pdns_control \
156 ./start-test-stop 5300 << parameters.context >>
158 install-recursor-deps:
159 description: "Install all libraries needed for the recursor"
161 - run: apt-get update
164 apt-get install -qq -y \
175 description: Install all libraries needed to run the auth
178 apt-get install -qq -y --no-install-recommends \
188 default-libmysqlclient-dev \
191 install-dnsdist-deps:
192 description: "Install all libraries needed for testing dnsdist"
194 - run: apt-get update
197 apt-get install -qq -y \
202 libcurl4-openssl-dev \
214 install-ixfrdist-deps:
215 description: "Install all libraries needed for testing ixfrdist"
217 - run: apt-get update
220 apt-get install -qq -y \
227 install-auth-dev-deps:
228 description: Install all packages needed to build the auth
230 - run: apt-get update
233 apt-get install -qq -y --no-install-recommends \
239 default-libmysqlclient-dev \
265 description: "Add the debian repo for the auth"
278 name: "Install dependencies"
279 command: "apt-get update && apt-get install -qq -y curl gnupg2"
281 name: "Install apt-keys"
283 if [ "<< parameters.version >>" = "master" ]; then
284 curl https://repo.powerdns.com/CBC8B383-pub.asc | apt-key add -
286 curl https://repo.powerdns.com/FD380FBB-pub.asc | apt-key add -
289 name: "Add repository"
291 echo 'deb [arch=amd64] http://repo.powerdns.com/<< parameters.distro >> << parameters.release >>-auth-<< parameters.version>> main' >> /etc/apt/sources.list.d/pdns.list
295 echo 'Package: pdns-*' > /etc/apt/preferences.d/pdns
296 echo 'Pin: origin repo.powerdns.com' >> /etc/apt/preferences.d/pdns
297 echo 'Pin-Priority: 600' >> /etc/apt/preferences.d/pdns
299 name: update apt cache
300 command: apt-get update
303 description: Install .ccache and set $PATH
307 command: apt-get update && apt-get -qq -y install ccache
309 name: Setup ccache in $PATH
310 command: echo 'export PATH=/usr/lib/ccache:$PATH' >> $BASH_ENV
313 description: Store the .ccache directory
320 key: ccache-cache-{{ arch }}-<< parameters.product >>-{{ .Branch }}
324 restore-cache-ccache:
325 description: Restore the .ccache directory
333 name: ensure ca-certificates is installed
334 command: apt-get update && apt-get -qq -y install ca-certificates
337 - ccache-cache-{{ arch }}-<< parameters.product >>-{{ .Branch }}
338 - ccache-cache-{{ arch }}-<< parameters.product >>-
341 description: Install dependencies needed to build the documentation
344 name: Install dependencies
346 apt-get update && apt-get -qq -y install \
363 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
364 apt-get update && apt-get -qq -y install \
369 description: Build documentation
374 BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
379 --disable-lua-records \
380 --disable-unit-tests \
381 --without-dynmodules \
386 make -C docs html-docs
387 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
388 make -C docs all-docs
394 name: Upload documents
396 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
397 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' ./docs/html-docs/ docs_powerdns_com@${DOCS_HOST}:/authoritative/
398 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./docs/html-docs.tar.bz2 docs_powerdns_com@${DOCS_HOST}:/authoritative/
399 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./docs/PowerDNS-Authoritative.pdf docs_powerdns_com@${DOCS_HOST}:/authoritative/
403 description: Build Recursor documentation
408 BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
409 working_directory: ~/project/pdns/recursordist
414 --disable-unit-tests \
416 working_directory: ~/project/pdns/recursordist
421 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
424 working_directory: ~/project/pdns/recursordist
426 upload-recursor-docs:
429 name: Upload documents
430 working_directory: ~/project/pdns/recursordist
432 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
433 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' html-docs/ docs_powerdns_com@${DOCS_HOST}:/recursor/
434 rsync -crv --no-p --chmod=g=rwX --exclude '*~' html-docs.tar.bz2 docs_powerdns_com@${DOCS_HOST}:/recursor/
435 rsync -crv --no-p --chmod=g=rwX --exclude '*~' PowerDNS-Recursor.pdf docs_powerdns_com@${DOCS_HOST}:/recursor/
439 description: Build dnsdist documentation
444 BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
445 working_directory: ~/project/pdns/dnsdistdist
450 --disable-unit-tests \
452 working_directory: ~/project/pdns/dnsdistdist
457 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
460 working_directory: ~/project/pdns/dnsdistdist
465 name: Upload documents
466 working_directory: ~/project/pdns/dnsdistdist
468 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
469 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' html-docs/ dnsdist_org@${DOCS_HOST}:
470 rsync -crv --no-p --chmod=g=rwX --exclude '*~' html-docs.tar.bz2 dnsdist_org@${DOCS_HOST}:
471 rsync -crv --no-p --chmod=g=rwX --exclude '*~' dnsdist.pdf dnsdist_org@${DOCS_HOST}:
477 - image: debian:buster
481 - persist_to_workspace:
488 - image: debian:buster
492 - install-auth-dev-deps
493 - restore-cache-ccache:
497 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
501 CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
502 CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
504 --disable-lua-records \
505 --with-modules='bind lmdb ldap gmysql gsqlite3 gpgsql godbc mydns random tinydns' \
510 --prefix=/opt/pdns-auth \
518 name: Install the binaries
519 command: make install
520 - persist_to_workspace:
525 test-auth-regress-odbc-sqlite3:
527 - image: debian:buster
531 name: Configure ODBC for sqlite
533 cat >> ~/.odbc.ini \<<- __EOF__
536 Database = ${PWD}/regression-tests/pdns.sqlite3
539 Database = ${PWD}/regression-tests/pdns.sqlite32
542 name: Install ODBC deps
544 apt-get install -qq -y \
549 name: Set up sqlite3 odbc testing
550 command: echo 'export GODBC_SQLITE3_DSN=pdns-sqlite3-1' > ./vars
551 workdir: ~/project/regression-tests
553 context: godbc_sqlite3-nsec3
554 doroot: false # Broken at the moment
556 test-auth-regress-odbc-mssql:
558 - image: debian:buster
559 - image: mcr.microsoft.com/mssql/server:2017-GA-ubuntu
562 - SA_PASSWORD: 'SAsa12%%'
566 name: Install ODBC deps
568 apt-get install -qq -y \
573 name: set up mssql odbc
575 cat >> ~/.odbc.ini \<<- __EOF__
583 [pdns-mssql-docker-nodb]
591 command: cat /usr/share/tdsodbc/odbcinst.ini >> /etc/odbcinst.ini
593 name: create database
594 command: echo 'create database pdns' | isql -v pdns-mssql-docker-nodb sa SAsa12%%
596 name: Set up mssql odbc testing
597 command: echo 'export GODBC_MSSQL_PASSWORD=SAsa12%% GODBC_MSSQL_USERNAME=sa GODBC_MSSQL_DSN=pdns-mssql-docker' > ./vars
598 workdir: ~/project/regression-tests
600 context: godbc_mssql-nodnssec
601 skip: 8bit-txt-unescaped
604 skip: 8bit-txt-unescaped
606 context: godbc_mssql-nsec3
607 skip: 8bit-txt-unescaped
609 context: godbc_mssql-nsec3-optout
610 skip: 8bit-txt-unescaped
612 context: godbc_mssql-nsec3-narrow
613 skip: 8bit-txt-unescaped
615 test-auth-regress-gsqlite3:
617 - image: debian:buster
621 command: apt-get install -qq -y sqlite3
623 context: gsqlite3-nodnssec-both
625 context: gsqlite3-both
627 context: gsqlite3-nsec3-both
629 context: gsqlite3-nsec3-optout-both
631 context: gsqlite3-nsec3-narrow
633 test-auth-regress-bind:
635 - image: debian:buster
636 - image: circleci/mysql:5 # for the hybrid test
640 command: apt-get install -qq -y sqlite3
644 context: bind-dnssec-both
646 context: bind-dnssec-nsec3-both
648 context: bind-dnssec-nsec3-optout-both
650 context: bind-dnssec-nsec3-narrow
652 command: apt-get install -qq -y default-mysql-client
655 cat >> ~/.my.cnf \<<- __EOF__
660 name: Set up mysql client lib to force TCP
661 command: echo 'export GMYSQLHOST=127.0.0.1 MYDNSHOST=127.0.0.1' > ./vars
662 workdir: ~/project/regression-tests
664 context: bind-hybrid-nsec3
666 test-auth-regress-mydns:
668 - image: debian:buster
669 - image: circleci/mysql:5
673 command: apt-get install -qq -y default-mysql-client
676 cat >> ~/.my.cnf \<<- __EOF__
681 name: Set up mysql client lib to force TCP
682 command: echo 'export GMYSQLHOST=127.0.0.1 MYDNSHOST=127.0.0.1' > ./vars
683 workdir: ~/project/regression-tests
688 test-auth-regress-gmysql:
690 - image: debian:buster
691 - image: circleci/mysql:5
695 command: apt-get install -qq -y default-mysql-client
698 cat >> ~/.my.cnf \<<- __EOF__
701 default-character-set=latin1
704 name: Set up mysql client lib to force TCP
705 command: echo 'export GMYSQLHOST=127.0.0.1 MYDNSHOST=127.0.0.1 export GMYSQL2HOST=127.0.0.1 MYDNS2HOST=127.0.0.1 ' > ./vars
706 workdir: ~/project/regression-tests
708 context: gmysql-nodnssec-both
712 context: gmysql-nsec3-both
714 context: gmysql-nsec3-optout-both
716 context: gmysql-nsec3-narrow
718 test-auth-regress-gpgsql:
720 - image: debian:buster
721 - image: circleci/postgres:9
727 command: apt-get install -qq -y postgresql-client
729 name: Use TCP for Postgresql connections
731 cat >> ./vars \<<- __EOF__
732 export PGHOST=127.0.0.1
735 workdir: ~/project/regression-tests
737 context: gpgsql-nodnssec-both
741 context: gpgsql-nsec3-both
743 context: gpgsql-nsec3-optout-both
745 context: gpgsql-nsec3-narrow
747 test-auth-regress-ldap:
749 - image: debian:buster
751 LDAPHOST: ldap://ldapserver/
752 - image: powerdns/ldap-regress:1.2.4-0 # OpenLDAP 2.4.47
754 command: '--loglevel debug'
759 - run: DEBIAN_FRONTEND=noninteractive apt-get install -qq -y ldap-utils
770 test-auth-regress-tinydns:
772 - image: debian:buster
779 test-auth-regress-lmdb:
781 - image: debian:buster
784 - run: apt-get install -y -qq jq curl
786 context: lmdb-nodnssec-both
790 context: lmdb-nsec3-both
792 context: lmdb-nsec3-optout-both
794 context: lmdb-nsec3-narrow
796 test-auth-algorithms:
798 - image: debian:buster
802 name: Test all algorithms
803 command: /opt/pdns-auth/bin/pdnsutil test-algorithms
807 - image: debian:buster
810 - run: apt-get -y -qq install virtualenv sqlite3
813 workdir: ~/project/regression-tests.api
815 PDNSSERVER="/opt/pdns-auth/sbin/pdns_server" \
816 PDNSUTIL="/opt/pdns-auth/bin/pdnsutil" \
817 SDIG="/opt/pdns-auth/bin/sdig" \
818 ZONE2SQL="/opt/pdns-auth/bin/zone2sql" \
819 ./runtests authoritative
823 - image: debian:buster
825 - restore-cache-ccache:
828 name: Install dependencies
830 apt-get update && apt-get -qq --no-install-recommends install \
857 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
858 working_directory: ~/project/pdns/recursordist
862 CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
863 CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
865 --enable-unit-tests \
868 --prefix=/opt/pdns-recursor \
872 --with-protobuf=yes \
874 working_directory: ~/project/pdns/recursordist
878 working_directory: ~/project/pdns/recursordist
883 command: make check || (cat test-suite.log; false)
884 working_directory: ~/project/pdns/recursordist
886 name: Install resulting binaries
887 command: make install
888 working_directory: ~/project/pdns/recursordist
889 - persist_to_workspace:
894 test-recursor-regression:
896 - image: debian:buster
899 - run: apt-get --no-install-recommends install -qq -y pdns-server pdns-backend-bind pdns-tools daemontools authbind jq libfaketime lua-posix moreutils bc virtualenv protobuf-compiler
900 - install-recursor-deps
902 name: Set up authbind
904 touch /etc/authbind/byport/53
905 chmod 755 /etc/authbind/byport/53
908 name: Run regression tests
911 PDNSRECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
912 RECCONTROL=/opt/pdns-recursor/bin/rec_control \
913 ./build-scripts/test-recursor
917 - image: debian:buster
920 - run: apt-get --no-install-recommends install -qq -y pdns-tools moreutils time
921 - install-recursor-deps
924 name: Get the majestic million list
925 workdir: ~/project/regression-tests
927 apt-get install -qq -y unzip && \
928 curl -LO http://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip && \
929 unzip top-1m.csv.zip -d .
933 DNSBULKTEST=/usr/bin/dnsbulktest \
934 RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
937 ./timestamp ./recursor-test 5300 50000 || \
938 (cat recursor.log; false)
939 workdir: ~/project/regression-tests
943 - image: debian:buster
946 - run: apt-get --no-install-recommends install -qq -y virtualenv pdns-tools
947 - install-recursor-deps
951 workdir: ~/project/regression-tests.api
953 PDNSRECURSOR="/opt/pdns-recursor/sbin/pdns_recursor" \
958 - image: debian:buster
966 - image: debian:buster
971 - add-docs-upload-ssh
976 - image: debian:buster
980 - build-recursor-docs
982 deploy-recursor-docs:
984 - image: debian:buster
988 - build-recursor-docs
989 - add-docs-upload-ssh
990 - upload-recursor-docs
994 - image: debian:buster
1000 deploy-dnsdist-docs:
1002 - image: debian:buster
1006 - build-dnsdist-docs
1007 - add-docs-upload-ssh
1008 - upload-dnsdist-docs
1012 - image: debian:buster
1014 - install-auth-dev-deps
1015 - install-coverity-tools
1019 working_directory: /opt/project/
1020 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
1023 working_directory: /opt/project/
1025 CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
1026 CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
1028 --disable-lua-records \
1030 --with-modules='bind lmdb ldap gmysql gsqlite3 gpgsql godbc mydns random tinydns' \
1034 --prefix=/opt/pdns-auth
1037 working_directory: /opt/project/
1038 command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
1040 name: Create Coverity tarball
1041 working_directory: /opt/project/
1042 command: tar caf auth.tar.bz2 cov-int
1044 name: Upload tarball to coverity
1045 working_directory: /opt/project/
1047 curl --form token=${COVERITY_TOKEN} \
1048 --form email="${COVERITY_EMAIL}" \
1049 --form file=@auth.tar.bz2 \
1050 --form version="$(./builder-support/gen-version)" \
1051 --form description="master build" \
1052 https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
1056 - image: debian:buster
1059 name: Install dependencies
1061 apt-get update && apt-get -qq --no-install-recommends install \
1090 - install-coverity-tools
1094 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
1095 working_directory: /opt/project/pdns/dnsdistdist
1099 CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
1100 CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
1103 --disable-unit-tests \
1106 --enable-dns-over-tls \
1107 --prefix=/opt/dnsdist \
1111 --with-protobuf=yes \
1113 working_directory: /opt/project/pdns/dnsdistdist
1116 command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
1117 working_directory: /opt/project/pdns/dnsdistdist
1119 name: Create Coverity tarball
1120 command: tar caf dnsdist.tar.bz2 cov-int
1121 working_directory: /opt/project/pdns/dnsdistdist
1123 name: Upload tarball to coverity
1125 curl --form token=${COVERITY_TOKEN} \
1126 --form email="${COVERITY_EMAIL}" \
1127 --form file=@pdns/dnsdistdist/dnsdist.tar.bz2 \
1128 --form version="$(./builder-support/gen-version)" \
1129 --form description="master build" \
1130 https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
1134 - image: debian:buster
1137 name: Install dependencies
1139 apt-get update && apt-get -qq --no-install-recommends install \
1163 - install-coverity-tools
1167 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
1168 working_directory: /opt/project/pdns/recursordist
1172 CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
1173 CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
1176 --disable-unit-tests \
1177 --prefix=/opt/pdns-recursor \
1181 --with-protobuf=yes \
1183 working_directory: /opt/project/pdns/recursordist
1186 command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
1187 working_directory: /opt/project/pdns/recursordist
1189 name: Create Coverity tarball
1190 command: tar caf recursor.tar.bz2 cov-int
1191 working_directory: /opt/project/pdns/recursordist
1193 name: Upload tarball to coverity
1195 curl --form token=${COVERITY_TOKEN} \
1196 --form email="${COVERITY_EMAIL}" \
1197 --form file=@pdns/recursordist/recursor.tar.bz2 \
1198 --form version="$(./builder-support/gen-version)" \
1199 --form description="master build" \
1200 https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
1204 - image: debian:buster
1206 UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
1208 - restore-cache-ccache:
1211 name: Install dependencies
1213 apt-get update && apt-get -qq --no-install-recommends install \
1242 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
1243 working_directory: ~/project/pdns/dnsdistdist
1247 CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
1248 CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
1250 --enable-unit-tests \
1253 --enable-dns-over-tls \
1254 --enable-dns-over-https \
1256 --prefix=/opt/dnsdist \
1260 --with-protobuf=yes \
1264 working_directory: ~/project/pdns/dnsdistdist
1267 command: make -j1 -k
1268 working_directory: ~/project/pdns/dnsdistdist
1269 - save-ccache-cache:
1272 name: Run unit tests
1273 command: make check || (cat test-suite.log; false)
1274 working_directory: ~/project/pdns/dnsdistdist
1276 name: Install resulting binaries
1277 command: make install
1278 working_directory: ~/project/pdns/dnsdistdist
1279 - persist_to_workspace:
1284 test-dnsdist-regression:
1286 - image: debian:buster
1288 UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
1290 - install-dnsdist-deps
1295 apt-get -qq --no-install-recommends install snmpd
1296 sed "s/agentxperms 0700 0755 dnsdist/agentxperms 0700 0755/g" regression-tests.dnsdist/snmpd.conf > /etc/snmp/snmpd.conf
1297 /etc/init.d/snmpd start
1299 name: Run dnsdist tests
1300 workdir: ~/project/regression-tests.dnsdist
1302 DNSDISTBIN="/opt/dnsdist/bin/dnsdist" \
1305 test-ixfrdist-regression:
1307 - image: debian:buster
1309 UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
1311 - install-ixfrdist-deps
1314 name: Run ixfrdist tests
1315 workdir: ~/project/regression-tests.ixfrdist
1317 IXFRDISTBIN="/opt/pdns-auth/bin/ixfrdist" \
1331 context: auth-coverity
1333 context: dnsdist-coverity
1334 - coverity-recursor:
1335 context: recursor-coverity
1346 - test-auth-algorithms:
1349 - test-auth-regress-odbc-sqlite3:
1352 - test-auth-regress-odbc-mssql:
1355 - test-auth-regress-gmysql:
1358 - test-auth-regress-mydns:
1361 - test-auth-regress-bind:
1364 - test-auth-regress-gsqlite3:
1367 - test-auth-regress-gpgsql:
1370 - test-auth-regress-lmdb:
1373 - test-auth-regress-ldap:
1376 - test-auth-regress-tinydns:
1382 - test-recursor-regression:
1385 - test-recursor-bulk:
1388 - test-recursor-api:
1394 - test-dnsdist-regression:
1397 - test-ixfrdist-regression:
1410 - build-recursor-docs:
1416 - build-dnsdist-docs:
1423 # These actually deploy
1431 - deploy-recursor-docs:
1438 - deploy-dnsdist-docs: