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
29 git --no-pager show -s
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 \
190 default-libmysqlclient-dev \
193 install-dnsdist-deps:
194 description: "Install all libraries needed for testing dnsdist"
196 - run: apt-get update
199 apt-get install -qq -y \
204 libcurl4-openssl-dev \
216 install-ixfrdist-deps:
217 description: "Install all libraries needed for testing ixfrdist"
219 - run: apt-get update
222 apt-get install -qq -y \
229 install-auth-dev-deps:
230 description: Install all packages needed to build the auth
232 - run: apt-get update
235 apt-get install -qq -y --no-install-recommends \
241 default-libmysqlclient-dev \
247 libcurl4-openssl-dev \
269 description: "Add the debian repo for the auth"
282 name: "Install dependencies"
283 command: "apt-get update && apt-get install -qq -y curl gnupg2"
285 name: "Install apt-keys"
287 if [ "<< parameters.version >>" = "master" ]; then
288 curl https://repo.powerdns.com/CBC8B383-pub.asc | apt-key add -
290 curl https://repo.powerdns.com/FD380FBB-pub.asc | apt-key add -
293 name: "Add repository"
295 echo 'deb [arch=amd64] http://repo.powerdns.com/<< parameters.distro >> << parameters.release >>-auth-<< parameters.version>> main' >> /etc/apt/sources.list.d/pdns.list
299 echo 'Package: pdns-*' > /etc/apt/preferences.d/pdns
300 echo 'Pin: origin repo.powerdns.com' >> /etc/apt/preferences.d/pdns
301 echo 'Pin-Priority: 600' >> /etc/apt/preferences.d/pdns
303 name: update apt cache
304 command: apt-get update
307 description: Install .ccache and set $PATH
311 command: apt-get update && apt-get -qq -y install ccache
313 name: Setup ccache in $PATH
314 command: echo 'export PATH=/usr/lib/ccache:$PATH' >> $BASH_ENV
317 description: Store the .ccache directory
324 key: ccache-cache-{{ arch }}-<< parameters.product >>-{{ .Branch }}
328 restore-cache-ccache:
329 description: Restore the .ccache directory
337 name: ensure ca-certificates is installed
338 command: apt-get update && apt-get -qq -y install ca-certificates
341 - ccache-cache-{{ arch }}-<< parameters.product >>-{{ .Branch }}
342 - ccache-cache-{{ arch }}-<< parameters.product >>-
345 description: Install dependencies needed to build the documentation
348 name: Install dependencies
350 apt-get update && apt-get -qq -y install \
368 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
369 apt-get update && apt-get -qq -y install \
374 description: Build documentation
379 BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
384 --disable-lua-records \
385 --disable-unit-tests \
386 --without-dynmodules \
391 make -C docs html-docs
392 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
393 make -C docs all-docs
399 name: Upload documents
401 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
402 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' ./docs/html-docs/ docs_powerdns_com@${DOCS_HOST}:/authoritative/
403 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./docs/html-docs.tar.bz2 docs_powerdns_com@${DOCS_HOST}:/authoritative/
404 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./docs/PowerDNS-Authoritative.pdf docs_powerdns_com@${DOCS_HOST}:/authoritative/
408 description: Build Recursor documentation
413 BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
414 working_directory: ~/project/pdns/recursordist
419 --disable-unit-tests \
421 working_directory: ~/project/pdns/recursordist
426 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
429 working_directory: ~/project/pdns/recursordist
431 upload-recursor-docs:
434 name: Upload documents
435 working_directory: ~/project/pdns/recursordist
437 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
438 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' html-docs/ docs_powerdns_com@${DOCS_HOST}:/recursor/
439 rsync -crv --no-p --chmod=g=rwX --exclude '*~' html-docs.tar.bz2 docs_powerdns_com@${DOCS_HOST}:/recursor/
440 rsync -crv --no-p --chmod=g=rwX --exclude '*~' PowerDNS-Recursor.pdf docs_powerdns_com@${DOCS_HOST}:/recursor/
444 description: Build dnsdist documentation
449 BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
450 working_directory: ~/project/pdns/dnsdistdist
455 --disable-unit-tests \
457 working_directory: ~/project/pdns/dnsdistdist
462 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
465 working_directory: ~/project/pdns/dnsdistdist
470 name: Upload documents
471 working_directory: ~/project/pdns/dnsdistdist
473 if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
474 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' html-docs/ dnsdist_org@${DOCS_HOST}:
475 rsync -crv --no-p --chmod=g=rwX --exclude '*~' html-docs.tar.bz2 dnsdist_org@${DOCS_HOST}:
476 rsync -crv --no-p --chmod=g=rwX --exclude '*~' dnsdist.pdf dnsdist_org@${DOCS_HOST}:
481 resource_class: small
484 - image: debian:buster
488 - persist_to_workspace:
495 - image: debian:buster
498 name: Install dependencies
500 apt-get update && apt-get -qq --no-install-recommends install \
504 name: Check formatting
506 ./build-scripts/format-code pdns/recursordist/*.[ch][ch]
508 exit $(git diff | wc -l)
509 working_directory: ~/project
513 - image: debian:buster
517 - install-auth-dev-deps
518 - restore-cache-ccache:
522 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
526 CFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security" \
527 CXXFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
529 --with-modules='bind lmdb ldap gmysql gsqlite3 gpgsql godbc random tinydns lua2' \
534 --prefix=/opt/pdns-auth \
542 name: Install the binaries
543 command: make install
544 - persist_to_workspace:
549 test-auth-regress-odbc-sqlite3:
550 resource_class: small
553 - image: debian:buster
557 name: Configure ODBC for sqlite
559 cat >> ~/.odbc.ini \<<- __EOF__
562 Database = ${PWD}/regression-tests/pdns.sqlite3
565 Database = ${PWD}/regression-tests/pdns.sqlite32
568 name: Install ODBC deps
570 apt-get install -qq -y \
575 name: Set up sqlite3 odbc testing
576 command: echo 'export GODBC_SQLITE3_DSN=pdns-sqlite3-1' > ./vars
577 workdir: ~/project/regression-tests
579 context: godbc_sqlite3-nsec3
580 doroot: false # Broken at the moment
582 test-auth-regress-odbc-mssql:
584 - image: debian:buster
585 - image: mcr.microsoft.com/mssql/server:2017-GA-ubuntu
588 - SA_PASSWORD: 'SAsa12%%'
592 name: Install ODBC deps
594 apt-get install -qq -y \
599 name: set up mssql odbc
601 cat >> ~/.odbc.ini \<<- __EOF__
609 [pdns-mssql-docker-nodb]
617 command: cat /usr/share/tdsodbc/odbcinst.ini >> /etc/odbcinst.ini
619 name: create database
620 command: echo 'create database pdns' | isql -v pdns-mssql-docker-nodb sa SAsa12%%
622 name: Set up mssql odbc testing
623 command: echo 'export GODBC_MSSQL_PASSWORD=SAsa12%% GODBC_MSSQL_USERNAME=sa GODBC_MSSQL_DSN=pdns-mssql-docker' > ./vars
624 workdir: ~/project/regression-tests
626 context: godbc_mssql-nodnssec
627 skip: 8bit-txt-unescaped
630 skip: 8bit-txt-unescaped
632 context: godbc_mssql-nsec3
633 skip: 8bit-txt-unescaped
635 context: godbc_mssql-nsec3-optout
636 skip: 8bit-txt-unescaped
638 context: godbc_mssql-nsec3-narrow
639 skip: 8bit-txt-unescaped
641 test-auth-regress-gsqlite3:
642 resource_class: small
645 - image: debian:buster
649 command: apt-get install -qq -y sqlite3
651 context: gsqlite3-nodnssec-both
653 context: gsqlite3-both
655 context: gsqlite3-nsec3-both
657 context: gsqlite3-nsec3-optout-both
659 context: gsqlite3-nsec3-narrow
661 test-auth-regress-bind:
662 resource_class: small
665 - image: debian:buster
666 - image: circleci/mysql:5 # for the hybrid test
670 command: apt-get install -qq -y sqlite3
674 context: bind-dnssec-both
676 context: bind-dnssec-nsec3-both
678 context: bind-dnssec-nsec3-optout-both
680 context: bind-dnssec-nsec3-narrow
682 command: apt-get install -qq -y default-mysql-client
685 cat >> ~/.my.cnf \<<- __EOF__
690 name: Set up mysql client lib to force TCP
691 command: echo 'export GMYSQLHOST=127.0.0.1' > ./vars
692 workdir: ~/project/regression-tests
694 context: bind-hybrid-nsec3
696 test-auth-regress-gmysql:
697 resource_class: small
700 - image: debian:buster
701 - image: circleci/mysql:5
705 command: apt-get install -qq -y default-mysql-client
708 cat >> ~/.my.cnf \<<- __EOF__
711 default-character-set=latin1
714 name: Set up mysql client lib to force TCP
715 command: echo 'export GMYSQLHOST=127.0.0.1 export GMYSQL2HOST=127.0.0.1 ' > ./vars
716 workdir: ~/project/regression-tests
718 context: gmysql-nodnssec-both
722 context: gmysql-nsec3-both
724 context: gmysql-nsec3-optout-both
726 context: gmysql-nsec3-narrow
728 test-auth-regress-gpgsql:
729 resource_class: small
732 - image: debian:buster
733 - image: circleci/postgres:9
739 command: apt-get install -qq -y postgresql-client
741 name: Use TCP for Postgresql connections
743 cat >> ./vars \<<- __EOF__
744 export PGHOST=127.0.0.1
747 workdir: ~/project/regression-tests
749 context: gpgsql-nodnssec-both
753 context: gpgsql-nsec3-both
755 context: gpgsql-nsec3-optout-both
757 context: gpgsql-nsec3-narrow
759 test-auth-regress-ldap:
760 resource_class: small
763 - image: debian:buster
765 LDAPHOST: ldap://ldapserver/
766 - image: powerdns/ldap-regress:1.2.4-0 # OpenLDAP 2.4.47
768 command: '--loglevel debug'
773 - run: DEBIAN_FRONTEND=noninteractive apt-get install -qq -y ldap-utils
784 test-auth-regress-tinydns:
785 resource_class: small
788 - image: debian:buster
795 test-auth-regress-lmdb:
796 resource_class: small
799 - image: debian:buster
802 - run: apt-get install -y -qq jq curl
804 context: lmdb-nodnssec-both
808 context: lmdb-nsec3-both
810 context: lmdb-nsec3-optout-both
812 context: lmdb-nsec3-narrow
814 test-auth-algorithms:
815 resource_class: small
818 - image: debian:buster
822 name: Test all algorithms
823 command: /opt/pdns-auth/bin/pdnsutil test-algorithms
826 resource_class: small
829 - image: debian:buster
832 - run: apt-get -y -qq install virtualenv sqlite3
835 workdir: ~/project/regression-tests.api
837 PDNSSERVER="/opt/pdns-auth/sbin/pdns_server" \
838 PDNSUTIL="/opt/pdns-auth/bin/pdnsutil" \
839 SDIG="/opt/pdns-auth/bin/sdig" \
840 ZONE2SQL="/opt/pdns-auth/bin/zone2sql" \
841 ./runtests authoritative
845 - image: debian:buster
847 - restore-cache-ccache:
850 name: Install dependencies
852 apt-get update && apt-get -qq --no-install-recommends install \
879 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
880 working_directory: ~/project/pdns/recursordist
884 CFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security" \
885 CXXFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
887 --enable-unit-tests \
890 --prefix=/opt/pdns-recursor \
894 --with-protobuf=yes \
896 working_directory: ~/project/pdns/recursordist
900 working_directory: ~/project/pdns/recursordist
905 command: make check || (cat test-suite.log; false)
906 working_directory: ~/project/pdns/recursordist
908 name: Install resulting binaries
909 command: make install
910 working_directory: ~/project/pdns/recursordist
911 - persist_to_workspace:
916 test-recursor-regression:
917 resource_class: small
920 - image: debian:buster
923 - run: apt-get --no-install-recommends install -qq -y pdns-server pdns-backend-bind pdns-tools daemontools authbind jq libfaketime lua-posix lua-socket moreutils bc virtualenv protobuf-compiler
924 - install-recursor-deps
926 name: Set up authbind
928 touch /etc/authbind/byport/53
929 chmod 755 /etc/authbind/byport/53
932 name: Run regression tests
935 PDNSRECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
936 RECCONTROL=/opt/pdns-recursor/bin/rec_control \
937 ./build-scripts/test-recursor
940 resource_class: small
943 - image: debian:buster
946 - run: apt-get --no-install-recommends install -qq -y pdns-tools moreutils time
947 - install-recursor-deps
950 name: Get the majestic million list
951 workdir: ~/project/regression-tests
953 apt-get install -qq -y unzip && \
954 curl -LO http://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip && \
955 unzip top-1m.csv.zip -d .
959 DNSBULKTEST=/usr/bin/dnsbulktest \
960 RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
963 ./timestamp ./recursor-test 5300 50000 || \
964 (cat recursor.log; false)
965 workdir: ~/project/regression-tests
968 resource_class: small
971 - image: debian:buster
974 - run: apt-get --no-install-recommends install -qq -y virtualenv pdns-tools
975 - install-recursor-deps
979 workdir: ~/project/regression-tests.api
981 PDNSRECURSOR="/opt/pdns-recursor/sbin/pdns_recursor" \
985 resource_class: small
988 - image: debian:buster
995 resource_class: small
998 - image: debian:buster
1003 - add-docs-upload-ssh
1006 build-recursor-docs:
1007 resource_class: small
1010 - image: debian:buster
1014 - build-recursor-docs
1016 deploy-recursor-docs:
1017 resource_class: small
1020 - image: debian:buster
1024 - build-recursor-docs
1025 - add-docs-upload-ssh
1026 - upload-recursor-docs
1029 resource_class: small
1032 - image: debian:buster
1036 - build-dnsdist-docs
1038 deploy-dnsdist-docs:
1039 resource_class: small
1042 - image: debian:buster
1046 - build-dnsdist-docs
1047 - add-docs-upload-ssh
1048 - upload-dnsdist-docs
1052 - image: debian:buster
1054 - install-auth-dev-deps
1055 - install-coverity-tools
1059 working_directory: /opt/project/
1060 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
1063 working_directory: /opt/project/
1065 CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
1066 CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
1068 --disable-lua-records \
1070 --with-modules='bind lmdb ldap gmysql gsqlite3 gpgsql godbc random tinydns' \
1074 --prefix=/opt/pdns-auth
1077 working_directory: /opt/project/
1078 command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
1080 name: Create Coverity tarball
1081 working_directory: /opt/project/
1082 command: tar caf auth.tar.bz2 cov-int
1084 name: Upload tarball to coverity
1085 working_directory: /opt/project/
1087 curl --form token=${COVERITY_TOKEN} \
1088 --form email="${COVERITY_EMAIL}" \
1089 --form file=@auth.tar.bz2 \
1090 --form version="$(./builder-support/gen-version)" \
1091 --form description="master build" \
1092 https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
1096 - image: debian:buster
1099 name: Install dependencies
1101 apt-get update && apt-get -qq --no-install-recommends install \
1130 - install-coverity-tools
1134 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
1135 working_directory: /opt/project/pdns/dnsdistdist
1139 CFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security" \
1140 CXXFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
1143 --disable-unit-tests \
1146 --enable-dns-over-tls \
1147 --prefix=/opt/dnsdist \
1151 --with-protobuf=yes \
1153 working_directory: /opt/project/pdns/dnsdistdist
1156 command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
1157 working_directory: /opt/project/pdns/dnsdistdist
1159 name: Create Coverity tarball
1160 command: tar caf dnsdist.tar.bz2 cov-int
1161 working_directory: /opt/project/pdns/dnsdistdist
1163 name: Upload tarball to coverity
1164 working_directory: /opt/project/
1166 curl --form token=${COVERITY_TOKEN} \
1167 --form email="${COVERITY_EMAIL}" \
1168 --form file=@pdns/dnsdistdist/dnsdist.tar.bz2 \
1169 --form version="$(./builder-support/gen-version)" \
1170 --form description="master build" \
1171 https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
1175 - image: debian:buster
1178 name: Install dependencies
1180 apt-get update && apt-get -qq --no-install-recommends install \
1204 - install-coverity-tools
1208 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
1209 working_directory: /opt/project/pdns/recursordist
1213 CFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security" \
1214 CXXFLAGS="-O1 -Werror=vla -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
1217 --disable-unit-tests \
1218 --prefix=/opt/pdns-recursor \
1222 --with-protobuf=yes \
1224 working_directory: /opt/project/pdns/recursordist
1227 command: /usr/local/bin/cov-build --dir cov-int make -j2 -k
1228 working_directory: /opt/project/pdns/recursordist
1230 name: Create Coverity tarball
1231 command: tar caf recursor.tar.bz2 cov-int
1232 working_directory: /opt/project/pdns/recursordist
1234 name: Upload tarball to coverity
1235 working_directory: /opt/project/
1237 curl --form token=${COVERITY_TOKEN} \
1238 --form email="${COVERITY_EMAIL}" \
1239 --form file=@pdns/recursordist/recursor.tar.bz2 \
1240 --form version="$(./builder-support/gen-version)" \
1241 --form description="master build" \
1242 https://scan.coverity.com/builds?project=${COVERITY_PROJECT}
1246 - image: debian:buster
1248 UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
1250 - restore-cache-ccache:
1253 name: Install dependencies
1255 apt-get update && apt-get -qq --no-install-recommends install \
1284 command: BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
1285 working_directory: ~/project/pdns/dnsdistdist
1289 CFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security" \
1290 CXXFLAGS="-O1 -Werror=vla -Werror=shadow -Wformat=2 -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS" \
1292 --enable-unit-tests \
1295 --enable-dns-over-tls \
1296 --enable-dns-over-https \
1298 --prefix=/opt/dnsdist \
1302 --with-protobuf=yes \
1306 working_directory: ~/project/pdns/dnsdistdist
1309 command: make -j1 -k
1310 working_directory: ~/project/pdns/dnsdistdist
1311 - save-ccache-cache:
1314 name: Run unit tests
1315 command: make check || (cat test-suite.log; false)
1316 working_directory: ~/project/pdns/dnsdistdist
1318 name: Install resulting binaries
1319 command: make install
1320 working_directory: ~/project/pdns/dnsdistdist
1321 - persist_to_workspace:
1326 test-dnsdist-regression:
1327 resource_class: small
1330 - image: debian:buster
1332 UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
1334 - install-dnsdist-deps
1339 apt-get -qq --no-install-recommends install snmpd
1340 sed "s/agentxperms 0700 0755 dnsdist/agentxperms 0700 0755/g" regression-tests.dnsdist/snmpd.conf > /etc/snmp/snmpd.conf
1341 /etc/init.d/snmpd start
1343 name: install prometheus tools
1345 apt-get -qq --no-install-recommends install prometheus
1347 name: Run dnsdist tests
1348 workdir: ~/project/regression-tests.dnsdist
1350 DNSDISTBIN="/opt/dnsdist/bin/dnsdist" \
1353 test-ixfrdist-regression:
1354 resource_class: small
1357 - image: debian:buster
1359 UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
1361 - install-ixfrdist-deps
1364 name: Run ixfrdist tests
1365 workdir: ~/project/regression-tests.ixfrdist
1367 IXFRDISTBIN="/opt/pdns-auth/bin/ixfrdist" \
1381 context: auth-coverity
1383 context: dnsdist-coverity
1384 - coverity-recursor:
1385 context: recursor-coverity
1396 - test-auth-algorithms:
1399 - test-auth-regress-odbc-sqlite3:
1402 - test-auth-regress-odbc-mssql:
1405 - test-auth-regress-gmysql:
1408 - test-auth-regress-bind:
1411 - test-auth-regress-gsqlite3:
1414 - test-auth-regress-gpgsql:
1417 - test-auth-regress-lmdb:
1420 - test-auth-regress-ldap:
1423 - test-auth-regress-tinydns:
1432 - test-recursor-regression:
1435 - test-recursor-bulk:
1438 - test-recursor-api:
1444 - test-dnsdist-regression:
1447 - test-ixfrdist-regression:
1460 - build-recursor-docs:
1466 - build-dnsdist-docs:
1473 # These actually deploy
1481 - deploy-recursor-docs:
1488 - deploy-dnsdist-docs: