-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
421 lines (385 loc) · 12.1 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
# Travis CI script
################################################################################
# This file is based on a template used by zproject, but isn't auto-generated. #
################################################################################
language:
- c
- python
python:
- '2.7'
# Cache the previous build areas, to reuse them if respective components
# (or their dependencies) did not change since last build. The Makefile
# should detect if some git HEAD marker file became newer and would then
# rebuild and reinstall the component (and those who depend on it).
cache:
pip: true
ccache: true
directories:
- ${TRAVIS_BUILD_DIR}/.srcclone/
- ${TRAVIS_BUILD_DIR}/.build/
- ${TRAVIS_BUILD_DIR}/.install/
os:
- linux
# Note: some packages or dependencies may require extended permissions
# which take longer to set up and boot. If your project does not build
# in the default container with sudo==false, consider requiring a docker
# image and/or a newer Ubuntu Trusty baseline VM, by uncommenting below.
# See the current docs on http://travis-ci.org for up-to-date options.
#sudo: false
# Note: Since fall'2017, "sudo" seems required to pass "pip install" below.
sudo: required
dist:
- trusty
services:
- docker
# Common required packages for all common scenarios
# Note that YAML lists may be named with & and referenced with * characters;
# but without such links, every list is complete and unique (meaning that
# matrix special cases define their own settings, not append to common ones).
# See https://github.com/travis-ci/travis-ci/issues/3505
pkg_deps_prereqs_fty_overall: &pkg_deps_prereqs_fty_overall
- libcppunit-dev
- libcppunit-subunit-dev
- libneon27
- libneon27-dev
- libltdl7
- libltdl-dev
- libi2c-dev
- lua5.1
- liblua5.1-0-dev
- libsnmp-dev
- libfreeipmi-dev
- libipmimonitoring-dev
- libusb-dev
- linux-libc-dev
- libpowerman0-dev
- libavahi-common-dev
- libavahi-core-dev
- libavahi-client-dev
- libgd2-xpm-dev
- libpng-dev
- libjpeg-dev
- libfreetype6-dev
- libxpm-dev
- libxml2-utils
- xsltproc
- uuid-dev
- libsasl2-2
- libsasl2-dev
- sasl2-bin
- apport
#Eubuntu-too-old# - liblog4cplus-dev
- libmysqlclient-dev
# - libsodium-dev
# - libsqlite3-dev
# - libpq-dev
#?# - libmariadbclient-dev
#?# - libmariadbd-dev
pkg_deps_doctools: &pkg_deps_doctools
- asciidoc
- xmlto
- dblatex
- docbook-xsl
- docbook-xsl-ns
- source-highlight
- aspell
- aspell-en
pkg_deps_devtools: &pkg_deps_devtools
- git
- ccache
# Note: gcc-4.8 => trusty (ubuntu14) or newer
# liblsan (leak sanitizer) is in gcc-4.9, 5.x etc. - not in trusty
pkg_deps_asan: &pkg_deps_asan
- libgcc-4.8-dev
# - liblsan0
# - libasan0
# - libasan1
# - libasan2
# - libtsan0
# - libubsan0
# For old case - we build our forks or referrals
#pkg_deps_prereqs_czmq3: &pkg_deps_prereqs_czmq3
# - libzmq3-dev
# - libczmq-dev
# - libmlm-dev
# For new case - we use prepackaged upstream masters
pkg_deps_prereqs_zmq_master: &pkg_deps_prereqs_zmq_master
- libsodium-dev
- libzmq5-dev
- libczmq-dev
- libmlm-dev
pkg_src_zeromq_ubuntu12: &pkg_src_zeromq_ubuntu12
- sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-draft/xUbuntu_12.04/ ./'
key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-draft/xUbuntu_12.04/Release.key'
pkg_src_zeromq_ubuntu14: &pkg_src_zeromq_ubuntu14
- sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-draft/xUbuntu_14.04/ ./'
key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-draft/xUbuntu_14.04/Release.key'
# Note: refer to ubuntu14 if you use dist==Trusty for default platform and packaged ZMQ
addons:
apt:
# sources: *pkg_src_zeromq_ubuntu14
packages: &pkg_deps_common
- *pkg_deps_devtools
- *pkg_deps_prereqs_fty_overall
# Set CI_TIME=true to enable build-step profiling in Travis
# Set CI_TRACE=true to enable shell script tracing in Travis
# Set CI_CONFIG_QUIET=true to enable "configure --quiet" (only report stderr)
# Set CI_GIT_RESYNC=true to pull latest sources for each submodule, or set it
# to "false" and check out just the commit IDs pointed to by FTY repo snapshot
# Set CI_WIPE_FIRST=true to "make wipe" the workspace before builds
env:
global:
- DEFAULT_CI_TIME=true
- DEFAULT_CI_TRACE=false
- DEFAULT_CI_QUIET=true
- DEFAULT_CI_GIT_RESYNC=false
- DEFAULT_CI_WIPE_FIRST=false
- DEFAULT_CI_PARMAKE_QUIET=true
# Note: this matrix currently assumes that "CI_CZMQ_VER=4" means builds
# against upstream/master from github, and "CI_CZMQ_VER=3" means usage
# of our legacy forked variant based on "czmq-v3.0.2" also from github,
# and "CI_CZMQ_VER=pkg" means usage of pre-packaged binaries from upstream.
# In either of the source builds, the libsodium, libzmq and malamute are
# from respective upstream/master's.
# We group the most informative builds first so they complete (or fail) early.
matrix:
include:
- env: BUILD_TYPE=help CI_GIT_SUBMODULES=false
os: linux
services: docker
- env: CI_CZMQ_VER=3 BUILD_TYPE=default-tgt:install-all
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- env: CI_CZMQ_VER=4 BUILD_TYPE=default-tgt:install-all
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- env: CI_CZMQ_VER=pkg BUILD_TYPE=default-tgt:install-all
os: linux
dist: trusty
services: docker
sudo: required
addons:
apt:
sources: *pkg_src_zeromq_ubuntu14
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- *pkg_deps_prereqs_zmq_master
- env: CI_CZMQ_VER=3 BUILD_TYPE=default-tgt:memcheck
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- valgrind
- env: CI_CZMQ_VER=4 BUILD_TYPE=default-tgt:memcheck
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- valgrind
- env: CI_CZMQ_VER=pkg BUILD_TYPE=default-tgt:memcheck
os: linux
dist: trusty
services: docker
sudo: required
addons:
apt:
sources: *pkg_src_zeromq_ubuntu14
packages:
- *pkg_deps_common
- valgrind
- *pkg_deps_prereqs_zmq_master
- env: CI_CZMQ_VER=3 ADDRESS_SANITIZER=enabled BUILD_TYPE=default-tgt:check
os: linux
dist: trusty
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- *pkg_deps_asan
- env: CI_CZMQ_VER=4 ADDRESS_SANITIZER=enabled BUILD_TYPE=default-tgt:check
os: linux
dist: trusty
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- *pkg_deps_asan
# The pre-packaged variant seems to have been built on a newer environment than
# Travis CI has available - so these runs fail due to "can not find -llsan"...
# - env: CI_CZMQ_VER=pkg ADDRESS_SANITIZER=enabled BUILD_TYPE=default-tgt:check
# os: linux
# dist: trusty
# sudo: required
# addons:
# apt:
# sources: *pkg_src_zeromq_ubuntu14
# packages:
# - *pkg_deps_common
# - *pkg_deps_asan
# - *pkg_deps_prereqs_zmq_master
- env: CI_CZMQ_VER=3 BUILD_TYPE=default-tgt:check
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- env: CI_CZMQ_VER=3 BUILD_TYPE=default-tgt:dist
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- env: CI_CZMQ_VER=3 BUILD_TYPE=default-tgt:distcheck
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- env: CI_CZMQ_VER=3 BUILD_TYPE=default-tgt:experimental
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- valgrind
- env: CI_CZMQ_VER=4 BUILD_TYPE=default-tgt:check
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- env: CI_CZMQ_VER=4 BUILD_TYPE=default-tgt:dist
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- env: CI_CZMQ_VER=4 BUILD_TYPE=default-tgt:distcheck
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- env: CI_CZMQ_VER=4 BUILD_TYPE=default-tgt:experimental
os: linux
services: docker
sudo: required
addons:
apt:
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- valgrind
- env: CI_CZMQ_VER=pkg BUILD_TYPE=default-tgt:check
os: linux
dist: trusty
services: docker
sudo: required
addons:
apt:
sources: *pkg_src_zeromq_ubuntu14
packages:
- *pkg_deps_common
- *pkg_deps_prereqs_zmq_master
- env: CI_CZMQ_VER=pkg BUILD_TYPE=default-tgt:dist
os: linux
dist: trusty
services: docker
sudo: required
addons:
apt:
sources: *pkg_src_zeromq_ubuntu14
packages:
- *pkg_deps_common
- *pkg_deps_prereqs_zmq_master
- env: CI_CZMQ_VER=pkg BUILD_TYPE=default-tgt:distcheck
os: linux
dist: trusty
services: docker
sudo: required
addons:
apt:
sources: *pkg_src_zeromq_ubuntu14
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- *pkg_deps_prereqs_zmq_master
- env: CI_CZMQ_VER=pkg BUILD_TYPE=default-tgt:experimental
os: linux
dist: trusty
services: docker
sudo: required
addons:
apt:
sources: *pkg_src_zeromq_ubuntu14
packages:
- *pkg_deps_common
- *pkg_deps_doctools
- *pkg_deps_prereqs_zmq_master
- valgrind
before_install:
- if [ -z "$CI_TIME" ] ; then export CI_TIME="$DEFAULT_CI_TIME" ; fi
- if [ -z "$CI_TRACE" ] ; then export CI_TRACE="$DEFAULT_CI_TRACE" ; fi
- if [ -z "$CI_QUIET" ] ; then export CI_QUIET="$DEFAULT_CI_QUIET" ; fi
- if [ -z "$CI_GIT_RESYNC" ] ; then export CI_GIT_RESYNC="$DEFAULT_CI_GIT_RESYNC" ; fi
- if [ -z "$CI_WIPE_FIRST" ] ; then export CI_WIPE_FIRST="$DEFAULT_CI_WIPE_FIRST" ; fi
- if [ -z "$CI_PARMAKE_QUIET" ] ; then export CI_PARMAKE_QUIET="$DEFAULT_CI_PARMAKE_QUIET" ; fi
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then echo "NON-PR BUILD Detected, assuming a montly build from scratch + most recent codebase"; export CI_WIPE_FIRST="true" ; export CI_GIT_RESYNC="true"; fi
- if [ "$CI_GIT_SUBMODULES" != false ]; then date; echo Syncing Git submodule repos... ; if [ "$CI_GIT_RESYNC" == true ] ; then DO_BUMP=no time ./sync.sh ; else git submodule init && { git submodule update --depth 3 || git submodule update ; } ; fi ; fi
- if [ $TRAVIS_OS_NAME == "osx" ] ; then brew update; brew install binutils asciidoc docbook-xsl ; XML_CATALOG_FILES=/usr/local/etc/xml/catalog ; export XML_CATALOG_FILES ; fi
install:
- date; echo Installing pycparser...
- sudo pip install pycparser
before_script:
- if [ -z "$CI_TIME" ] ; then export CI_TIME="$DEFAULT_CI_TIME" ; fi
- if [ -z "$CI_TRACE" ] ; then export CI_TRACE="$DEFAULT_CI_TRACE" ; fi
- if [ -z "$CI_QUIET" ] ; then export CI_QUIET="$DEFAULT_CI_QUIET" ; fi
- if [ -z "$CI_GIT_RESYNC" ] ; then export CI_GIT_RESYNC="$DEFAULT_CI_GIT_RESYNC" ; fi
- if [ -z "$CI_WIPE_FIRST" ] ; then export CI_WIPE_FIRST="$DEFAULT_CI_WIPE_FIRST" ; fi
- if [ -z "$CI_PARMAKE_QUIET" ] ; then export CI_PARMAKE_QUIET="$DEFAULT_CI_PARMAKE_QUIET" ; fi
- date; echo Fixing up SASL...
- ./.travis.fixsasl
# Hand off to generated script for each BUILD_TYPE
### Note there are many components to test, it takes time...
### and some tests just sleep and resume slowly, so Travis gets worried.
###script: travis_wait 120 ./ci_build.sh
###script: echo "Current envvars:"; set ; ./ci_build.sh
script: ./ci_build.sh