]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - .travis.yml
Merge pull request #5496 from rgacogne/dnsdist-lua-spoof-multi
[thirdparty/pdns.git] / .travis.yml
index bb4e1f525b679f8b9a1693f2a19fff88f347158a..9260619702c857126dd9b48bc8e4ea43ab3562a2 100644 (file)
@@ -4,6 +4,24 @@ language: cpp
 compiler:
   - gcc
   - clang
+env:
+  - PDNS_BUILD_PRODUCT=auth
+  - PDNS_BUILD_PRODUCT=recursor
+  - PDNS_BUILD_PRODUCT=dnsdist
+  - PDNS_BUILD_PRODUCT=docs
+
+matrix:
+  exclude:
+    - compiler: clang
+      env: PDNS_BUILD_PRODUCT=docs
+    - compiler: clang
+      env: PDNS_BUILD_PRODUCT=recursor
+  include:
+    - compiler: clang
+      env: PDNS_BUILD_PRODUCT=recursor COMPILER=clang++-3.6
+      addons:
+        apt:
+          packages: ['clang-3.6']
 
 before_script:
   - git describe --always --dirty=+
@@ -16,351 +34,8 @@ before_script:
   - 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
-
-
 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 ..
-
-  - cd regression-tests.rootzone
-  - ./timestamp ./start-test-stop 5300 bind-both
-#FIXME 400, NSEC record synthesis for root zones is broken
-#  - ./timestamp ./start-test-stop 5300 bind-dnssec-both
-  - ./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-both
-#FIXME 400, NSEC record synthesis for root zones is broken
-#  - ./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
-
-  - ./timestamp ./start-test-stop 5300 gmysql-nodnssec-both
-  - ./timestamp ./start-test-stop 5300 gmysql-both
-#FIXME 400, NSEC3 record synthesis for root zones is broken
-#  - ./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 gpgsql-nodnssec-both
-  - ./timestamp ./start-test-stop 5300 gpgsql-both
-#FIXME 400, NSEC3 record synthesis for root zones is broken
-#  - ./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
-#FIXME 400, NSEC3 record synthesis for root zones is broken
-#  - ./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
-
-  - 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 pdns-recursor*/pdns_recursor .
-  - cd ../..
-
-  # regression-tests
-  - cd regression-tests.recursor
-  - cp vars.sample vars
-  - ./config.sh
-  - ./start.sh
-  - sleep 3
-  - svstat configs/*
-  - ./runtests
-  - 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: