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
- add-docs-upload-ssh:
- description: Add ssh known_hosts fingerprints
- steps:
- - run:
- command: mkdir -p $HOME/.ssh && echo "${DOCS_HOST} ${DOCS_FINGERPRINT}" > $HOME/.ssh/known_hosts
- - add_ssh_keys:
- fingerprints:
- - "3e:0a:aa:2c:30:69:89:f3:eb:17:c1:3f:3b:78:40:7a"
-
# 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
- ccache-cache-{{ arch }}-<< parameters.product >>-{{ .Branch }}
- ccache-cache-{{ arch }}-<< parameters.product >>-
- install-doc-deps:
- description: Install dependencies needed to build the documentation
- steps:
- - run:
- name: Install dependencies
- command: |
- apt-get update && apt-get -qq -y install \
- autoconf \
- automake \
- bison \
- curl \
- flex \
- g++ \
- git \
- latexmk \
- libboost-all-dev \
- libedit-dev \
- libluajit-5.1-dev \
- libssl-dev \
- make \
- pkg-config \
- ragel \
- rsync \
- python3-venv
- if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
- apt-get update && apt-get -qq -y install \
- texlive-full
- fi
-
- build-auth-docs:
- description: Build documentation
- steps:
- - run:
- name: autoconf
- command: |
- BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
- - run:
- name: configure
- command: |
- ./configure \
- --enable-option-checking=fatal \
- --disable-lua-records \
- --disable-unit-tests \
- --without-dynmodules \
- --without-modules
- - run:
- name: build docs
- command: |
- make -C docs html-docs
- if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
- make -C docs all-docs
- fi
-
- upload-auth-docs:
- steps:
- - run:
- name: Upload documents
- command: |
- if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
- rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' ./docs/html-docs/ docs_powerdns_com@${DOCS_HOST}:/authoritative/
- rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./docs/html-docs.tar.bz2 docs_powerdns_com@${DOCS_HOST}:/authoritative/
- rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./docs/PowerDNS-Authoritative.pdf docs_powerdns_com@${DOCS_HOST}:/authoritative/
- fi
-
- build-recursor-docs:
- description: Build Recursor documentation
- steps:
- - run:
- name: autoconf
- command: |
- BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
- working_directory: ~/project/pdns/recursordist
- - run:
- name: configure
- command: |
- ./configure \
- --enable-option-checking=fatal \
- --disable-unit-tests
- working_directory: ~/project/pdns/recursordist
- - run:
- name: build docs
- command: |
- make html-docs
- if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
- make all-docs
- fi
- working_directory: ~/project/pdns/recursordist
-
- upload-recursor-docs:
- steps:
- - run:
- name: Upload documents
- working_directory: ~/project/pdns/recursordist
- command: |
- if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
- rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' html-docs/ docs_powerdns_com@${DOCS_HOST}:/recursor/
- rsync -crv --no-p --chmod=g=rwX --exclude '*~' html-docs.tar.bz2 docs_powerdns_com@${DOCS_HOST}:/recursor/
- rsync -crv --no-p --chmod=g=rwX --exclude '*~' PowerDNS-Recursor.pdf docs_powerdns_com@${DOCS_HOST}:/recursor/
- fi
-
- build-dnsdist-docs:
- description: Build dnsdist documentation
- steps:
- - run:
- name: autoconf
- command: |
- BUILDER_VERSION=0.0.0-git1 autoreconf -vfi
- working_directory: ~/project/pdns/dnsdistdist
- - run:
- name: configure
- command: |
- ./configure \
- --enable-option-checking=fatal \
- --disable-unit-tests
- working_directory: ~/project/pdns/dnsdistdist
- - run:
- name: build docs
- command: |
- make html-docs
- if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
- make all-docs
- fi
- working_directory: ~/project/pdns/dnsdistdist
-
- upload-dnsdist-docs:
- steps:
- - run:
- name: Upload documents
- working_directory: ~/project/pdns/dnsdistdist
- command: |
- if [ "${CIRCLE_PROJECT_USERNAME}" = "PowerDNS" -a "${CIRCLE_PROJECT_REPONAME}" = "pdns" -a "${CIRCLE_BRANCH}" = "master" ]; then
- rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' html-docs/ dnsdist_org@${DOCS_HOST}:
- rsync -crv --no-p --chmod=g=rwX --exclude '*~' html-docs.tar.bz2 dnsdist_org@${DOCS_HOST}:
- rsync -crv --no-p --chmod=g=rwX --exclude '*~' dnsdist.pdf dnsdist_org@${DOCS_HOST}:
- fi
-
jobs:
checkout:
resource_class: small
context: geoip
doroot: false
- build-auth-docs:
- resource_class: small
-
- docker:
- - image: debian:bullseye
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - get-workspace
- - install-doc-deps
- - build-auth-docs
-
- deploy-auth-docs:
- resource_class: small
-
- docker:
- - image: debian:bullseye
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - get-workspace
- - install-doc-deps
- - build-auth-docs
- - add-docs-upload-ssh
- - upload-auth-docs
-
- build-recursor-docs:
- resource_class: small
-
- docker:
- - image: debian:bullseye
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - get-workspace
- - install-doc-deps
- - build-recursor-docs
-
- deploy-recursor-docs:
- resource_class: small
-
- docker:
- - image: debian:bullseye
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - get-workspace
- - install-doc-deps
- - build-recursor-docs
- - add-docs-upload-ssh
- - upload-recursor-docs
-
- build-dnsdist-docs:
- resource_class: small
-
- docker:
- - image: debian:bullseye
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - get-workspace
- - install-doc-deps
- - build-dnsdist-docs
-
- deploy-dnsdist-docs:
- resource_class: small
-
- docker:
- - image: debian:bullseye
- auth:
- username: powerdnsreadonly
- password: $DOCKERHUB_PASSWORD
- steps:
- - get-workspace
- - install-doc-deps
- - build-dnsdist-docs
- - add-docs-upload-ssh
- - upload-dnsdist-docs
-
coverity-auth:
docker:
- image: debian:buster
- test-auth-regress-ldap:
requires:
- build-auth
-
- build-docs:
- jobs:
- - checkout
- - build-auth-docs:
- filters:
- branches:
- ignore: master
- requires:
- - checkout
- - build-recursor-docs:
- filters:
- branches:
- ignore: master
- requires:
- - checkout
- - build-dnsdist-docs:
- filters:
- branches:
- ignore: master
- requires:
- - checkout
-
- # These actually deploy
- - deploy-auth-docs:
- context: docs
- filters:
- branches:
- only: master
- requires:
- - checkout
- - deploy-recursor-docs:
- context: docs
- filters:
- branches:
- only: master
- requires:
- - checkout
- - deploy-dnsdist-docs:
- context: docs
- filters:
- branches:
- only: master
- requires:
- - checkout