From 752c6de22a9e056d9fc59be2ab6be9441a5b1be8 Mon Sep 17 00:00:00 2001 From: Kees Monshouwer Date: Thu, 19 Nov 2015 18:44:30 +0100 Subject: [PATCH] redo .travis.yml --- .travis.yml | 490 ++++++++++++++---------- regression-tests/backends/remote-master | 1 - 2 files changed, 297 insertions(+), 194 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5c4e2e4ac..cfad226e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,202 +1,306 @@ +sudo: required +dist: trusty language: cpp compiler: - gcc - clang -sudo: required -dist: trusty + before_script: - - export POSIXLY_CORRECT=1 - - git describe --always --dirty=+ - - for suffix in {1..40}; do sudo /sbin/ip addr add 10.0.3.$suffix/32 dev lo; done - - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - - sudo rm -f /etc/apt/sources.list.d/travis_ci_zeromq3-source.list - - sudo apt-get update -qq - - sudo apt-get install --quiet --quiet --no-install-recommends - alien - authbind - bc - bind9utils - daemontools - dnsutils - faketime - geoip-database - mysql-server - ldnsutils - libboost-all-dev - libbotan1.10-dev - libcdb-dev - libcurl4-openssl-dev - libgeoip-dev - libldap2-dev - libnet-dns-perl - libopendbx1-dev - libopendbx1-sqlite3 - libp11-kit-dev - libsqliteodbc - libtolua-dev - libtool - libyaml-cpp-dev - libzmq3-dev - links - lua-posix - moreutils - p11-kit - pandoc - pkg-config - python-virtualenv - rpm - ruby-json - ruby-sqlite3 - ruby1.9.1 - socat - softhsm - time - unbound-host - unixodbc-dev - xmlto - - virtualenv $HOME/.venv - - source $HOME/.venv/bin/activate - - pip install pyopenssl ndg-httpsclient pyasn1 - - pip install pandocfilters==1.2.3 mkdocs==0.14 linkchecker==9.3 click==5.1 - - deactivate - - sudo touch /etc/authbind/byport/53 - - sudo chmod 755 /etc/authbind/byport/53 - - cd .. - - wget https://xs.powerdns.com/tmp/libsodium_1.0.2-1_amd64.deb - - sudo dpkg -i libsodium_1.0.2-1_amd64.deb - - sudo mv /usr/local/lib/libsodium.* /usr/lib - - 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 - - wget http://s3.amazonaws.com/alexa-static/top-1m.csv.zip - - unzip top-1m.csv.zip -d ./pdns/regression-tests - - cd pdns - - travis_retry gem install bundler --no-rdoc --no-ri - - cd modules/remotebackend - - travis_retry ruby -S bundle install - - cd ../.. - - sudo mkdir -p /etc/pkcs11/modules/ - - sudo cp -f regression-tests/softhsm.mod /etc/pkcs11/modules/softhsm - - 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 - - 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 + - git describe --always --dirty=+ + + ### setup travis environment ### + - sudo sysctl net.ipv6.conf.lo.disable_ipv6=0 + - export POSIXLY_CORRECT=1 + - sudo apt-get -qq update + + + ### build requirements ### + + # global build requirements + - sudo apt-get -qq --no-install-recommends install + libboost-all-dev + liblua5.1-dev + - cd .. + - wget https://xs.powerdns.com/tmp/libsodium_1.0.2-1_amd64.deb + - sudo dpkg -i libsodium_1.0.2-1_amd64.deb + - sudo mv /usr/local/lib/libsodium.* /usr/lib + - 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 + - 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 + + # 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 - - ./configure - --with-dynmodules='bind gmysql geoip godbc gpgsql gsqlite3 mydns tinydns pipe remote random opendbx ldap lua' - --with-modules='' - --with-sqlite3 - --enable-unit-tests - --enable-remotebackend-zeromq - --enable-libsodium - --enable-experimental-pkcs11 - --enable-tools - --disable-dependency-tracking - - make -k dist - - make -k -j 4 V=1 - - cd docs - - make check-links - - deactivate - - cd .. - - make -k install DESTDIR=/tmp/pdns-install-dir - - find /tmp/pdns-install-dir -ls - - make -j 4 check V=1 - - 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 -j 2 -C pdns $(grep '(EXEEXT):' pdns/Makefile | cut -f1 -d\$ | grep -E -v 'dnsdist|calidns') - - make -k -j 2 -C pdns $(grep '(EXEEXT):' pdns/Makefile | cut -f1 -d\$ | grep -E -v 'dnsdist|calidns|speedtest') - - cd pdns - - make -k -j 4 pdns_recursor - - rm -f pdns_recursor - - ./pdnsutil test-algorithms - - cd .. - - ./build-scripts/dist-recursor - - cd pdns/pdns-recursor-*/ - - ./configure - - make -k -j 4 - - cd .. - - ln -s pdns-recursor*/pdns_recursor . - - cd .. - - ./build-scripts/dist-dnsdist - - cd pdns/dnsdistdist - - tar xf dnsdist*.tar.bz2 - - cd dnsdist-* - - ./configure - - make -k -j 4 - - cd .. - - rm -rf dnsdist-*/ - - cd ../../ - - 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 -#DNSName - cd ../regression-tests.api -#DNSName - ./runtests authoritative -#DNSName - ./runtests recursor - - cd ../regression-tests - - touch tests/verify-dnssec-zone/allow-missing - - touch tests/verify-dnssec-zone/skip.nsec3 # some (travis) tools in this test are unable to handle nsec3 zones - - touch tests/verify-dnssec-zone/skip.optout - - export geoipregion=oc geoipregionip=1.2.3.4 - - ./timestamp ./start-test-stop 5300 bind-both - - ./timestamp ./start-test-stop 5300 bind-dnssec-both - - ./timestamp ./start-test-stop 5300 bind-dnssec-pkcs11 - - ./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 - - ./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 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 - # - GODBC_SQLITE3_DSN=pdns-sqlite3-1 ./timestamp ./start-test-stop 5300 godbc_sqlite3-nsec3 - - travis_retry ./timestamp timeout 120s ./start-test-stop 5300 remotebackend-pipe - - travis_retry ./timestamp timeout 120s ./start-test-stop 5300 remotebackend-pipe-dnssec - - travis_retry ./timestamp timeout 120s ./start-test-stop 5300 remotebackend-unix - - travis_retry ./timestamp timeout 120s ./start-test-stop 5300 remotebackend-unix-dnssec - - travis_retry ./timestamp timeout 120s ./start-test-stop 5300 remotebackend-http - - travis_retry ./timestamp timeout 120s ./start-test-stop 5300 remotebackend-http-dnssec - - travis_retry ./timestamp timeout 120s ./start-test-stop 5300 remotebackend-zeromq - - travis_retry ./timestamp timeout 120s ./start-test-stop 5300 remotebackend-zeromq-dnssec - - ./timestamp ./start-test-stop 5300 tinydns - - rm -f tests/verify-dnssec-zone/allow-missing - - rm -f tests/verify-dnssec-zone/skip.nsec3 - - rm -f tests/verify-dnssec-zone/skip.optout - - THRESHOLD=90 TRACE=no ./timestamp ./recursor-test 5300 25000 - - cd ../regression-tests.nobackend/ - - ./runtests - - test ! -s ./failed_tests - - cd .. - - git status - - git status | grep -q clean + - ./bootstrap + # Build without --enable-botan1.10 option, Botan/SoftHSM conflict #2496 + - source $HOME/.venv/bin/activate + - ./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 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 + - ./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 ### + + # in-tree build + - cd pdns + - make -k -j3 pdns_recursor + - rm -f pdns_recursor + - cd .. + + # distribution build + - ./build-scripts/dist-recursor + - cd pdns/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 + #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 + - make -k -j3 + - cd .. + - rm -rf dnsdist-*/ + - cd ../../ + + + ### api ### + - cd regression-tests.api + #DNSName: - ./runtests authoritative + #DNSName: - ./runtests recursor + - cd .. + + + ### no backend tests ### + - cd regression-tests.nobackend/ + - ./runtests + - test ! -s ./failed_tests + - cd .. + + + - git status + - git status | grep -q clean + + notifications: irc: channels: diff --git a/regression-tests/backends/remote-master b/regression-tests/backends/remote-master index a40d043f8..8bef5bcd8 100644 --- a/regression-tests/backends/remote-master +++ b/regression-tests/backends/remote-master @@ -39,7 +39,6 @@ case $context in connstr="zeromq:endpoint=ipc:///tmp/pdns.0" $testsdir/zeromq-backend.rb & echo $! > pdns-remotebackend.pid - sleep 20 # just a test ;; unix) connstr="unix:path=$testsdir/remote.socket" -- 2.49.0