Do a strict ./configure --enable-developer build to make warnings errors in CI
[lorikeet-heimdal.git] / .travis.yml
1 os:
2     - linux
3     - osx
4
5 language: c
6
7 env:
8     global:
9         secure: "YKG77M7zMvJ+IeV2ziw//HcHqMqFoAzIZlE99Yw/aOn5pvMYKq6Ep7EFVhbfDu9yN0T7M5csCGQeH7/ylDlsZSRMUw72844ezMDM8e10T/lW/T/OYN7j1ZVHh3WSJgS+1D9VG6/Y0OY1Si3lb7PcOdAIU0fPJV5xQONN2+hpJeI="
10
11 before_install:
12     - if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get update -qq; fi
13     - if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get install -qq bison comerr-dev flex libcap-ng-dev libdb-dev libedit-dev libjson-perl libldap2-dev libncurses5-dev libperl4-corelibs-perl libsqlite3-dev libkeyutils-dev pkg-config python ss-dev texinfo unzip netbase keyutils; fi
14     - if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get install -qq ldap-utils gdb apport; fi
15     - if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get install -qq libmicrohttpd-dev; fi
16     - if [ $TRAVIS_OS_NAME = linux -a -n "$COVERAGE" ]; then sudo apt-get install -qq jq; fi
17     - if [ $TRAVIS_OS_NAME = osx ]; then brew update; fi
18     - if [ $TRAVIS_OS_NAME = osx ]; then brew install cpanm bison flex berkeley-db lmdb openldap openssl; fi
19     - if [ $TRAVIS_OS_NAME = osx ]; then sudo cpanm install JSON; fi
20     - if [ $TRAVIS_OS_NAME = osx -a -n "$COVERAGE" ]; then brew install jq; fi
21     - mkdir ci-build
22     - mkdir coverity-build
23     - ./autogen.sh
24
25 install:
26     - cd ci-build
27     - |
28       if [ $TRAVIS_OS_NAME = osx ]; then
29           LDFLAGS="-L/usr/local/opt/berkeley-db/lib -L/usr/local/opt/lmdb/lib" \
30           CFLAGS="-I/usr/local/opt/lmdb/include" \
31           ../configure \
32                   --srcdir=`dirname "$PWD"` \
33                   --prefix=/tmp/heimdal \
34                   --enable-maintainer-mode $COVERAGE \
35                   --enable-static=no \
36                   --enable-pthread-support \
37                   --disable-afs-support \
38                   --disable-ndbm-db \
39                   --with-openldap=/usr/local/opt/openldap \
40                   --with-openssl=/usr/local/opt/openssl/ \
41                   --with-hcrypto-default-backend=ossl \
42                   --with-berkeley-db \
43                   --with-berkeley-db-include=/usr/local/opt/berkeley-db/include
44       else
45           # This list of -Wno-error options should be reduced over time where possible
46           if [ x"$TRAVIS_COMPILER" != x"clang" ]; then
47               CFLAGS="-Wno-error=empty-body -Wno-error=shadow -Wno-error=unused-value -Wno-error=unused-but-set-variable -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations" ../configure --enable-developer --srcdir=`dirname "$PWD"` --enable-maintainer-mode $COVERAGE
48           else
49               CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations" ../configure --enable-developer --srcdir=`dirname "$PWD"` --enable-maintainer-mode $COVERAGE
50           fi
51       fi
52     - ulimit -c unlimited; make -j3
53
54 script:
55     - if [ x${COVERITY_SCAN_BRANCH} != x1 ]; then ulimit -c unlimited; make check${MAKE_CHECK_SUFFIX}; fi
56
57 after_script:
58     - if [ -n "$COVERAGE" ]; then ../tools/coveralls-tool -O $PWD -S ..; fi
59     - find . -name \*.log -print0|xargs -0 grep '^==[1-9]'
60
61 after_failure:
62     - find . -name test-suite.log -print0 | xargs -0 cat
63     - if [ $TRAVIS_OS_NAME = linux ]; then echo "thread apply all bt" > x; find . -name core -print | while read core; do gdb -batch -x x `file "$core"|sed -e "s/^[^']*'//" -e "s/[ '].*$//"` "$core"; done; fi
64
65 compiler:
66     - clang
67     - gcc
68
69 matrix:
70     include:
71       - os: linux
72         compiler: gcc
73         env: COVERAGE=--enable-gcov
74     exclude:
75       - os: osx
76         compiler: gcc
77
78 notifications:
79     email:
80         on_success: change
81         on_failure: always
82
83 addons:
84
85     coverity_scan:
86         project:
87             name: "heimdal/heimdal"
88             description: "Build submitted via Travis CI"
89         notification_email: heimdal-builders@secure-endpoints.com
90         build_command_prepend: ../configure --enable-maintainer-mode
91         build_command: make
92         branch_pattern: coverity_scan