]>
Commit | Line | Data |
---|---|---|
752c6de2 KM |
1 | sudo: required |
2 | dist: trusty | |
7b8f4fc1 PD |
3 | language: cpp |
4 | compiler: | |
5 | - gcc | |
f032a91a | 6 | - clang |
752c6de2 | 7 | |
7b8f4fc1 | 8 | before_script: |
752c6de2 KM |
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 | |
5b0c1332 KM |
14 | - export CFLAGS=-O0 |
15 | - export CXXFLAGS=-O0 | |
16 | - export OPTFLAGS=-O0 | |
752c6de2 KM |
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 | |
a6a26b43 | 72 | jq |
752c6de2 KM |
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 | ||
7b8f4fc1 | 149 | script: |
752c6de2 KM |
150 | - ./bootstrap |
151 | # Build without --enable-botan1.10 option, Botan/SoftHSM conflict #2496 | |
152 | - source $HOME/.venv/bin/activate | |
5b0c1332 | 153 | - CFLAGS='-O1' CXXFLAGS='-O1' ./configure |
752c6de2 KM |
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-* | |
ca404e94 | 283 | - ./configure --enable-unit-tests |
752c6de2 | 284 | - make -k -j3 |
ca404e94 RG |
285 | - ./testrunner |
286 | - cp ./dnsdist ../../../regression-tests.dnsdist/ | |
287 | - cd ../../../regression-tests.dnsdist | |
288 | - DNSDISTBIN=./dnsdist ./runtests | |
289 | - rm -f ./dnsdist | |
752c6de2 | 290 | - cd .. |
ca404e94 | 291 | - rm -rf pdns/dnsdistdist/dnsdist-*/ |
752c6de2 KM |
292 | |
293 | ||
294 | ### api ### | |
295 | - cd regression-tests.api | |
1d6b70f9 | 296 | - ./runtests authoritative |
3fa5806e | 297 | - ./runtests recursor |
752c6de2 KM |
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 | ||
7b8f4fc1 PD |
312 | notifications: |
313 | irc: | |
314 | channels: | |
315 | - "irc.oftc.net#powerdns-dev" | |
bfc7a4a8 RA |
316 | template: |
317 | - "%{author} @ %{repository} / %{branch} - Build:#%{build_number} : %{message} - Changes: %{compare_url} - Build details: %{build_url}" | |
7b8f4fc1 PD |
318 | use_notice: true |
319 | skip_join: true |