]> git.ipfire.org Git - thirdparty/pdns.git/blob - .travis.yml
Various documentation cleanups
[thirdparty/pdns.git] / .travis.yml
1 sudo: required
2 dist: trusty
3 language: cpp
4 compiler:
5 - gcc
6 - clang
7
8 before_script:
9 - git describe --always --dirty=+
10
11 ### setup travis environment ###
12 - sudo sysctl net.ipv6.conf.lo.disable_ipv6=0
13 - export POSIXLY_CORRECT=1
14 - export CFLAGS=-O0
15 - export CXXFLAGS=-O0
16 - export OPTFLAGS=-O0
17 - sudo apt-get -qq update
18
19
20 ### build requirements ###
21
22 # global build requirements
23 - sudo apt-get -qq --no-install-recommends install
24 libboost-all-dev
25 liblua5.1-dev
26 - cd ..
27 - wget https://xs.powerdns.com/tmp/libsodium_1.0.2-1_amd64.deb
28 - sudo dpkg -i libsodium_1.0.2-1_amd64.deb
29 - sudo mv /usr/local/lib/libsodium.* /usr/lib
30 - cd pdns
31
32 # pkcs11 build requirements
33 - sudo apt-get -qq --no-install-recommends install
34 libp11-kit-dev
35
36 # geoip-backend
37 - sudo apt-get -qq --no-install-recommends install
38 libgeoip-dev
39 libyaml-cpp-dev
40
41 # ldap-backend
42 - sudo apt-get -qq --no-install-recommends install
43 libldap-dev
44
45 # opendbx-backend
46 - sudo apt-get -qq --no-install-recommends install
47 libopendbx1-dev
48 libopendbx1-sqlite3
49
50 # remote-backend build requirements
51 - sudo apt-get -qq --no-install-recommends install
52 libzmq3-dev
53
54
55 ### documentation requirements
56 - sudo apt-get -qq --no-install-recommends install
57 pandoc
58 xmlto
59
60
61 ### test requirements ###
62
63 # authoritative test requirements / setup
64 - sudo apt-get -qq --no-install-recommends install
65 bind9utils
66 ldnsutils
67 libnet-dns-perl
68 moreutils
69 unbound-host
70 validns
71 default-jre
72 jq
73 - cd ..
74 - wget http://www.verisignlabs.com/dnssec-tools/packages/jdnssec-tools-0.12.tar.gz
75 - sudo tar xfz jdnssec-tools-0.12.tar.gz --strip-components=1 -C /
76 - cd pdns
77
78 # pkcs11 test requirements / setup
79 - sudo apt-get -qq --no-install-recommends install
80 p11-kit
81 softhsm
82 - sudo mkdir -p /etc/pkcs11/modules/
83 - sudo cp -f regression-tests/softhsm.mod /etc/pkcs11/modules/softhsm.module
84 - sudo cp -f regression-tests/softhsm.conf /etc/softhsm/softhsm.conf
85 - sudo chmod 0755 /etc/softhsm/
86 - sudo chmod 0644 /etc/softhsm/softhsm.conf
87 - sudo chmod 0777 /var/lib/softhsm
88 - p11-kit -l # ensure it's ok
89
90 # bind-backend tests requirements
91 - sudo apt-get -qq --no-install-recommends install
92 alien
93 - cd ..
94 - wget ftp://ftp.nominum.com/pub/nominum/dnsperf/2.0.0.0/dnsperf-2.0.0.0-1-rhel-6-x86_64.tar.gz
95 - tar xzvf dnsperf-2.0.0.0-1-rhel-6-x86_64.tar.gz
96 - fakeroot alien --to-deb dnsperf-2.0.0.0-1/dnsperf-2.0.0.0-1.el6.x86_64.rpm
97 - sudo dpkg -i dnsperf_2.0.0.0-2_amd64.deb
98 - cd pdns
99
100 # geoip-backend test requirements / setup
101 - sudo apt-get -qq --no-install-recommends install
102 geoip-database
103 - export geoipregion=oc geoipregionip=1.2.3.4
104
105 # gmysql-backend test requirements
106 - sudo apt-get -qq --no-install-recommends install
107 mysql-server
108
109 # godbc-backend test setup
110 - 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
111 - export GODBC_SQLITE3_DSN=pdns-sqlite3-1
112
113 # remote-backend tests requirements
114 - sudo apt-get -qq --no-install-recommends install
115 ruby-json
116 rubygems-integration
117 socat
118 - gem install bundler --no-rdoc --no-ri
119 - cd modules/remotebackend
120 - ruby -S bundle install
121 - cd ../..
122
123 # tinydns
124 - sudo apt-get -qq --no-install-recommends install
125 libcdb-dev
126
127 # documentation test requirements
128 - virtualenv $HOME/.venv
129 - source $HOME/.venv/bin/activate
130 - pip install -q pandocfilters==1.2.3 mkdocs==0.14 linkchecker==9.3 click==5.1
131
132 # recursor test requirements / setup
133 - sudo apt-get -qq --no-install-recommends install
134 authbind
135 daemontools
136 - cd ..
137 - wget http://s3.amazonaws.com/alexa-static/top-1m.csv.zip
138 - unzip top-1m.csv.zip -d ./pdns/regression-tests
139 - cd pdns
140 - 'for suffix in {1..40}; do sudo /sbin/ip addr add 10.0.3.$suffix/32 dev lo; done'
141 - sudo touch /etc/authbind/byport/53
142 - sudo chmod 755 /etc/authbind/byport/53
143
144 # no-backend tests
145 - sudo apt-get -qq --no-install-recommends install
146 faketime
147
148
149 script:
150 - ./bootstrap
151 # Build without --enable-botan1.10 option, Botan/SoftHSM conflict #2496
152 - source $HOME/.venv/bin/activate
153 - CFLAGS='-O1' CXXFLAGS='-O1' ./configure
154 --with-dynmodules='bind gmysql geoip gpgsql gsqlite3 ldap lua mydns opendbx pipe random remote tinydns'
155 --with-modules=''
156 --with-sqlite3
157 --enable-libsodium
158 --enable-experimental-pkcs11
159 --enable-remotebackend-zeromq
160 --enable-tools
161 --enable-unit-tests
162 --enable-backend-unit-tests
163 --disable-dependency-tracking
164 - deactivate
165
166 - make -k dist
167
168 - make -k -j3
169
170 - cd docs
171 - source $HOME/.venv/bin/activate
172 - make check-links
173 - deactivate
174 - cd ..
175
176 - make -k install DESTDIR=/tmp/pdns-install-dir
177 - find /tmp/pdns-install-dir -ls
178
179 - make -j3 check
180 - test -f pdns/test-suite.log && cat pdns/test-suite.log || true
181 - test -f modules/remotebackend/test-suite.log && cat modules/remotebackend/test-suite.log || true
182
183 #DNSName - make -k -j3 -C pdns $(grep '(EXEEXT):' pdns/Makefile | cut -f1 -d\$ | grep -E -v 'dnsdist|calidns')
184 - make -k -j3 -C pdns $(grep '(EXEEXT):' pdns/Makefile | cut -f1 -d\$ | grep -E -v 'dnsdist|calidns|speedtest')
185
186 - cd pdns
187 - ./pdnsutil test-algorithms
188 - cd ..
189
190 - cd regression-tests
191 - ./timestamp ./start-test-stop 5300 bind-both
192 - ./timestamp ./start-test-stop 5300 bind-dnssec-both
193 - ./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-both
194 - ./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-optout-both
195 - ./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-narrow
196 - ./timestamp ./start-test-stop 5300 bind-hybrid-nsec3
197 - ./timestamp ./start-test-stop 5300 bind-dnssec-pkcs11
198
199 - ./timestamp ./start-test-stop 5300 geoip
200 - ./timestamp ./start-test-stop 5300 geoip-nsec3-narrow
201
202 - ./timestamp ./start-test-stop 5300 gmysql-nodnssec-both
203 - ./timestamp ./start-test-stop 5300 gmysql-both
204 - ./timestamp ./start-test-stop 5300 gmysql-nsec3-both
205 - ./timestamp ./start-test-stop 5300 gmysql-nsec3-optout-both
206 - ./timestamp ./start-test-stop 5300 gmysql-nsec3-narrow
207
208 # - ./timestamp ./start-test-stop 5300 godbc_sqlite3-nsec3
209
210 - ./timestamp ./start-test-stop 5300 gpgsql-nodnssec-both
211 - ./timestamp ./start-test-stop 5300 gpgsql-both
212 - ./timestamp ./start-test-stop 5300 gpgsql-nsec3-both
213 - ./timestamp ./start-test-stop 5300 gpgsql-nsec3-optout-both
214 - ./timestamp ./start-test-stop 5300 gpgsql-nsec3-narrow
215
216 - ./timestamp ./start-test-stop 5300 gsqlite3-nodnssec-both
217 - ./timestamp ./start-test-stop 5300 gsqlite3-both
218 - ./timestamp ./start-test-stop 5300 gsqlite3-nsec3-both
219 - ./timestamp ./start-test-stop 5300 gsqlite3-nsec3-optout-both
220 - ./timestamp ./start-test-stop 5300 gsqlite3-nsec3-narrow
221
222 - ./timestamp ./start-test-stop 5300 mydns
223
224 - ./timestamp ./start-test-stop 5300 opendbx-sqlite3
225
226 - ./timestamp ./start-test-stop 5300 remotebackend-pipe
227 - ./timestamp ./start-test-stop 5300 remotebackend-pipe-dnssec
228 - ./timestamp ./start-test-stop 5300 remotebackend-unix
229 - ./timestamp ./start-test-stop 5300 remotebackend-unix-dnssec
230 - ./timestamp ./start-test-stop 5300 remotebackend-http
231 - ./timestamp ./start-test-stop 5300 remotebackend-http-dnssec
232 - ./timestamp ./start-test-stop 5300 remotebackend-zeromq
233 - ./timestamp ./start-test-stop 5300 remotebackend-zeromq-dnssec
234
235 - ./timestamp ./start-test-stop 5300 tinydns
236 - cd ..
237
238
239 ### recursor ###
240
241 # in-tree build
242 - cd pdns
243 - make -k -j3 pdns_recursor
244 - rm -f pdns_recursor
245 - cd ..
246
247 # distribution build
248 - ./build-scripts/dist-recursor
249 - cd pdns/pdns-recursor-*/
250 - ./configure
251 - make -k -j3
252 - cd ..
253 - ln -s pdns-recursor*/pdns_recursor .
254 - cd ..
255
256 # regression-tests
257 - cd regression-tests.recursor
258 - cp vars.sample vars
259 - ./config.sh
260 - ./start.sh
261 - sleep 3
262 - svstat configs/*
263 - ./runtests
264 #DNSName: - test ! -s ./failed_tests
265 - ./stop.sh
266 - sleep 3
267 - ./clean.sh
268 - cd ..
269
270 # bulktest
271 - cd regression-tests
272 - THRESHOLD=90 TRACE=no ./timestamp ./recursor-test 5300 25000
273 - cd ..
274
275
276 ### dnsdist ###
277
278 # distribution build
279 - ./build-scripts/dist-dnsdist
280 - cd pdns/dnsdistdist
281 - tar xf dnsdist*.tar.bz2
282 - cd dnsdist-*
283 - ./configure --enable-unit-tests
284 - make -k -j3
285 - ./testrunner
286 - cp ./dnsdist ../../../regression-tests.dnsdist/
287 - cd ../../../regression-tests.dnsdist
288 - DNSDISTBIN=./dnsdist ./runtests
289 - rm -f ./dnsdist
290 - cd ..
291 - rm -rf pdns/dnsdistdist/dnsdist-*/
292
293
294 ### api ###
295 - cd regression-tests.api
296 - ./runtests authoritative
297 - ./runtests recursor
298 - cd ..
299
300
301 ### no backend tests ###
302 - cd regression-tests.nobackend/
303 - ./runtests
304 - test ! -s ./failed_tests
305 - cd ..
306
307
308 - git status
309 - git status | grep -q clean
310
311
312 notifications:
313 irc:
314 channels:
315 - "irc.oftc.net#powerdns-dev"
316 template:
317 - "%{author} @ %{repository} / %{branch} - Build:#%{build_number} : %{message} - Changes: %{compare_url} - Build details: %{build_url}"
318 use_notice: true
319 skip_join: true