compiler:
- gcc
- clang
+env:
+ - PDNS_BUILD_PRODUCT=auth
+ - PDNS_BUILD_PRODUCT=recursor
+ - PDNS_BUILD_PRODUCT=dnsdist
+ - PDNS_BUILD_PRODUCT=ixfrdist
+
+cache:
+ - pip
before_script:
- git describe --always --dirty=+
+ - sudo rm -f /etc/apt/sources.list.d/*.list
### setup travis environment ###
- sudo sysctl net.ipv6.conf.lo.disable_ipv6=0
- export CXXFLAGS=-O0
- export OPTFLAGS=-O0
- sudo apt-get -qq update
-
-
- ### build requirements ###
-
- # global build requirements
- - sudo apt-get -qq --no-install-recommends install
- libboost-all-dev
- liblua5.1-dev
- libedit-dev
- - cd ..
- - wget http://ppa.launchpad.net/kalon33/gamesgiroll/ubuntu/pool/main/libs/libsodium/libsodium-dev_1.0.3-1~ppa14.04+1_amd64.deb
- - wget http://ppa.launchpad.net/kalon33/gamesgiroll/ubuntu/pool/main/libs/libsodium/libsodium13_1.0.3-1~ppa14.04+1_amd64.deb
- - sudo dpkg -i libsodium-dev_1.0.3-1~ppa14.04+1_amd64.deb libsodium13_1.0.3-1~ppa14.04+1_amd64.deb
- - cd pdns
-
- # pkcs11 build requirements
- - sudo apt-get -qq --no-install-recommends install
- libp11-kit-dev
-
- # geoip-backend
- - sudo apt-get -qq --no-install-recommends install
- libgeoip-dev
- libyaml-cpp-dev
-
- # ldap-backend
- - sudo apt-get -qq --no-install-recommends install
- libldap-dev
-
- # opendbx-backend
- - sudo apt-get -qq --no-install-recommends install
- libopendbx1-dev
- libopendbx1-sqlite3
-
- # remote-backend build requirements
- - sudo apt-get -qq --no-install-recommends install
- libzmq3-dev
-
-
- ### documentation requirements
- - sudo apt-get -qq --no-install-recommends install
- pandoc
- xmlto
-
-
- ### test requirements ###
-
- # authoritative test requirements / setup
- - sudo apt-get -qq --no-install-recommends install
- bind9utils
- ldnsutils
- libnet-dns-perl
- moreutils
- unbound-host
- validns
- default-jre
- jq
- - cd ..
- - wget http://www.verisignlabs.com/dnssec-tools/packages/jdnssec-tools-0.12.tar.gz
- - sudo tar xfz jdnssec-tools-0.12.tar.gz --strip-components=1 -C /
- - cd pdns
-
- # pkcs11 test requirements / setup
- - sudo apt-get -qq --no-install-recommends install
- p11-kit
- softhsm
- - sudo mkdir -p /etc/pkcs11/modules/
- - sudo cp -f regression-tests/softhsm.mod /etc/pkcs11/modules/softhsm.module
- - sudo cp -f regression-tests/softhsm.conf /etc/softhsm/softhsm.conf
- - sudo chmod 0755 /etc/softhsm/
- - sudo chmod 0644 /etc/softhsm/softhsm.conf
- - sudo chmod 0777 /var/lib/softhsm
- - p11-kit -l # ensure it's ok
-
- # bind-backend tests requirements
- - sudo apt-get -qq --no-install-recommends install
- alien
- - cd ..
- - wget ftp://ftp.nominum.com/pub/nominum/dnsperf/2.0.0.0/dnsperf-2.0.0.0-1-rhel-6-x86_64.tar.gz
- - tar xzvf dnsperf-2.0.0.0-1-rhel-6-x86_64.tar.gz
- - fakeroot alien --to-deb dnsperf-2.0.0.0-1/dnsperf-2.0.0.0-1.el6.x86_64.rpm
- - sudo dpkg -i dnsperf_2.0.0.0-2_amd64.deb
- - cd pdns
-
- # geoip-backend test requirements / setup
- - sudo apt-get -qq --no-install-recommends install
- geoip-database
- - export geoipregion=oc geoipregionip=1.2.3.4
-
- # gmysql-backend test requirements
- - sudo apt-get -qq --no-install-recommends install
- mysql-server
-
- # godbc-backend test setup
- - echo -e "[pdns-sqlite3-1]\nDriver = SQLite3\nDatabase = ${PWD}/regression-tests/pdns.sqlite3\n\n[pdns-sqlite3-2]\nDriver = SQLite3\nDatabase = ${PWD}/regression-tests/pdns.sqlite32\n" > ${HOME}/.odbc.ini
- - export GODBC_SQLITE3_DSN=pdns-sqlite3-1
-
- # ldap-backend test setup
- - sudo apt-get -qq --no-install-recommends install
- slapd
- ldap-utils
- - mkdir /tmp/ldap-dns
- - pushd /tmp/ldap-dns
- - for schema in /etc/ldap/schema/{core,cosine}.schema ${TRAVIS_BUILD_DIR}/modules/ldapbackend/{dnsdomain2,pdns-domaininfo}.schema ; do echo include $schema ; done > ldap.conf
- - mkdir slapd.d
- - slaptest -f ldap.conf -F slapd.d
- - sudo cp slapd.d/cn=config/cn=schema/cn={*dns*.ldif /etc/ldap/slapd.d/cn=config/cn=schema/
- - sudo chown -R openldap:openldap /etc/ldap/slapd.d/
- - sudo service slapd restart
- - popd
- - sudo -u openldap mkdir -p /var/lib/ldap/powerdns
- - sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ./modules/ldapbackend/testfiles/add.ldif
-
- # remote-backend tests requirements
- - sudo apt-get -qq --no-install-recommends install
- ruby-json
- rubygems-integration
- socat
- - gem install bundler --no-rdoc --no-ri
- - cd modules/remotebackend
- - ruby -S bundle install
- - cd ../..
-
- # tinydns
- - sudo apt-get -qq --no-install-recommends install
- libcdb-dev
-
- # documentation test requirements
- - virtualenv $HOME/.venv
- - source $HOME/.venv/bin/activate
- - pip install -q pandocfilters==1.2.3 mkdocs==0.14 linkchecker==9.3 click==5.1
-
- # recursor test requirements / setup
- - sudo apt-get -qq --no-install-recommends install
- authbind
- daemontools
- - cd ..
- - wget http://s3.amazonaws.com/alexa-static/top-1m.csv.zip
- - unzip top-1m.csv.zip -d ./pdns/regression-tests
- - cd pdns
- - 'for suffix in {1..40}; do sudo /sbin/ip addr add 10.0.3.$suffix/32 dev lo; done'
- - sudo touch /etc/authbind/byport/53
- - sudo chmod 755 /etc/authbind/byport/53
-
- # no-backend tests
- - sudo apt-get -qq --no-install-recommends install
- faketime
-
+ # you can remove this when updating dist to something newer than trusty
+ - pyenv global 2.7
+ # needed for virtualenv to use the pyenv python
+ - pip install virtualenv
script:
- - ./bootstrap
- # Build without --enable-botan1.10 option, Botan/SoftHSM conflict #2496
- - source $HOME/.venv/bin/activate
- - CFLAGS='-O1' CXXFLAGS='-O1' ./configure
- --with-dynmodules='bind gmysql geoip gpgsql gsqlite3 ldap lua mydns opendbx pipe random remote tinydns'
- --with-modules=''
- --with-sqlite3
- --enable-libsodium
- --enable-experimental-pkcs11
- --enable-remotebackend-zeromq
- --enable-tools
- --enable-unit-tests
- --enable-backend-unit-tests
- --disable-dependency-tracking
- - deactivate
-
- - make -k dist
-
- - make -k -j3
-
- - cd docs
- - source $HOME/.venv/bin/activate
- - make check-links
- - deactivate
- - cd ..
-
- - make -k install DESTDIR=/tmp/pdns-install-dir
- - find /tmp/pdns-install-dir -ls
-
- - make -j3 check
- - test -f pdns/test-suite.log && cat pdns/test-suite.log || true
- - test -f modules/remotebackend/test-suite.log && cat modules/remotebackend/test-suite.log || true
-
- #DNSName - make -k -j3 -C pdns $(grep '(EXEEXT):' pdns/Makefile | cut -f1 -d\$ | grep -E -v 'dnsdist|calidns')
- - make -k -j3 -C pdns $(grep '(EXEEXT):' pdns/Makefile | cut -f1 -d\$ | grep -E -v 'dnsdist|calidns|speedtest')
-
- - cd pdns
- - ./pdnsutil test-algorithms
- - cd ..
-
- - cd regression-tests
-
- - ./timestamp ./start-test-stop 5300 ldap-tree
- - ./timestamp ./start-test-stop 5300 ldap-simple
- - ./timestamp ./start-test-stop 5300 ldap-strict
-
- - ./timestamp ./start-test-stop 5300 bind-both
- - ./timestamp ./start-test-stop 5300 bind-dnssec-both
- - ./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-both
- - ./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-optout-both
- - ./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-narrow
- - ./timestamp ./start-test-stop 5300 bind-hybrid-nsec3
- #ecdsa - ./timestamp ./start-test-stop 5300 bind-dnssec-pkcs11
-
- - ./timestamp ./start-test-stop 5300 geoip
- - ./timestamp ./start-test-stop 5300 geoip-nsec3-narrow
-
- - ./timestamp ./start-test-stop 5300 gmysql-nodnssec-both
- - ./timestamp ./start-test-stop 5300 gmysql-both
- - ./timestamp ./start-test-stop 5300 gmysql-nsec3-both
- - ./timestamp ./start-test-stop 5300 gmysql-nsec3-optout-both
- - ./timestamp ./start-test-stop 5300 gmysql-nsec3-narrow
-
- # - ./timestamp ./start-test-stop 5300 godbc_sqlite3-nsec3
-
- - ./timestamp ./start-test-stop 5300 gpgsql-nodnssec-both
- - ./timestamp ./start-test-stop 5300 gpgsql-both
- - ./timestamp ./start-test-stop 5300 gpgsql-nsec3-both
- - ./timestamp ./start-test-stop 5300 gpgsql-nsec3-optout-both
- - ./timestamp ./start-test-stop 5300 gpgsql-nsec3-narrow
-
- - ./timestamp ./start-test-stop 5300 gsqlite3-nodnssec-both
- - ./timestamp ./start-test-stop 5300 gsqlite3-both
- - ./timestamp ./start-test-stop 5300 gsqlite3-nsec3-both
- - ./timestamp ./start-test-stop 5300 gsqlite3-nsec3-optout-both
- - ./timestamp ./start-test-stop 5300 gsqlite3-nsec3-narrow
-
- - ./timestamp ./start-test-stop 5300 mydns
-
- - ./timestamp ./start-test-stop 5300 opendbx-sqlite3
-
- - ./timestamp ./start-test-stop 5300 remotebackend-pipe
- - ./timestamp ./start-test-stop 5300 remotebackend-pipe-dnssec
- - ./timestamp ./start-test-stop 5300 remotebackend-unix
- - ./timestamp ./start-test-stop 5300 remotebackend-unix-dnssec
- - ./timestamp ./start-test-stop 5300 remotebackend-http
- - ./timestamp ./start-test-stop 5300 remotebackend-http-dnssec
- - ./timestamp ./start-test-stop 5300 remotebackend-zeromq
- - ./timestamp ./start-test-stop 5300 remotebackend-zeromq-dnssec
-
- - ./timestamp ./start-test-stop 5300 tinydns
- - cd ..
-
-
- ### recursor ###
-
- # distribution build
- - ./build-scripts/dist-recursor
- - cd pdns/recursordist
- - tar xf pdns-recursor-*.tar.bz2
- - rm -f pdns-recursor-*.tar.bz2
- - cd pdns-recursor-*
- - ./configure
- - make -k -j3
- - cd ../..
- - ln -s recursordist/pdns-recursor*/pdns_recursor .
- - cd ..
-
- # regression-tests
- - cd regression-tests.recursor
- - cp vars.sample vars
- - ./config.sh
- - ./start.sh
- - sleep 3
- - svstat configs/*
- - ./runtests
- #DNSName: - test ! -s ./failed_tests
- - ./stop.sh
- - sleep 3
- - ./clean.sh
- - cd ..
-
- # bulktest
- - cd regression-tests
- - THRESHOLD=90 TRACE=no ./timestamp ./recursor-test 5300 25000
- - cd ..
-
-
- ### dnsdist ###
-
- # distribution build
- - ./build-scripts/dist-dnsdist
- - cd pdns/dnsdistdist
- - tar xf dnsdist*.tar.bz2
- - cd dnsdist-*
- - ./configure --enable-unit-tests --enable-libsodium --enable-dnscrypt
- - make -k -j3
- - ./testrunner
- - cp ./dnsdist ../../../regression-tests.dnsdist/
- - cd ../../../regression-tests.dnsdist
- - DNSDISTBIN=./dnsdist ./runtests -v
- - rm -f ./dnsdist
- - rm -f ./DNSCryptResolver.cert ./DNSCryptResolver.key
- - cd ..
- - rm -rf pdns/dnsdistdist/dnsdist-*/
-
-
- ### api ###
- - cd regression-tests.api
- - ./runtests authoritative
- - ./runtests recursor
- - cd ..
-
-
- ### no backend tests ###
- - cd regression-tests.nobackend/
- - ./runtests
- - test ! -s ./failed_tests
- - cd ..
-
- - rm -f regression-tests/zones/*-slave.* #FIXME
-
- - git status
- - git status | grep -q clean
-
+ - ./build-scripts/travis.sh
notifications:
irc:
channels:
- - "irc.oftc.net#powerdns-dev"
+ - secure: "RDw5WKYf/gS3JnfIdkK51U4K2Xg/WNMn1uB/5AZbHbcqZJ/ZnbILCu0eBC83blQr+UuaQG7/sUFhWbtwoivD2I/4wOQGWIysBEZ8bSoySPSc4u0YU45aPjN+Ohrrp9qw7Smts3tYHbrOqfLfZ39L8lJq06vuMoBp6eHVkSBT7AY="
template:
- "%{author} @ %{repository} / %{branch} - Build:#%{build_number} : %{message} - Changes: %{compare_url} - Build details: %{build_url}"
use_notice: true