Install json_object_private.h file
[platform/upstream/json-c.git] / .travis.yml
1 language: cpp
2 matrix:
3   include:
4 # gcc
5 #   xenial
6 #   gcc 5 is the default on xenial
7     - os: linux
8       dist: xenial
9       compiler: gcc
10       addons:
11         apt:
12           packages:
13             - valgrind
14             - cppcheck
15             - doxygen
16             - cmake
17       env: CHECK="true"
18 #   bionic
19     - os: linux
20       dist: bionic
21       compiler: gcc
22       env: MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
23
24     # gcc 7 is the default on bionic
25     - os: linux
26       dist: bionic
27       compiler: gcc
28       env: CHECK="true"
29     - os: linux
30       dist: bionic
31       compiler: gcc
32       env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8"
33
34 # clang
35 #   xenial
36     - os: linux
37       dist: xenial
38       compiler: clang
39       addons:
40         apt:
41           sources:
42             - llvm-toolchain-xenial-5.0
43           packages:
44             - clang-5.0
45             - cmake
46       env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
47     - os: linux
48       dist: xenial
49       compiler: clang
50       addons:
51         apt:
52           sources:
53             - llvm-toolchain-xenial-6.0
54           packages:
55             - clang-6.0
56             - cmake
57       env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0"
58
59     # clang-7 is the default on xenial and bionic
60     - os: linux
61       dist: xenial
62       compiler: clang
63       addons:
64         apt:
65           packages:
66             - valgrind
67             - cppcheck
68             - doxygen
69             - cmake
70       env: CHECK="true"
71
72 # bionic
73     - os: linux
74       dist: bionic
75       compiler: clang
76       env: CHECK="true"
77 # osx
78     - os: osx
79       osx_image: xcode9.4
80       env: XCODE="true"
81     - os: osx
82       osx_image: xcode10.1
83       env: XCODE="true" CHECK="true"
84
85 # run coveralls
86     - os: linux
87       dist: xenial
88       compiler: gcc
89       addons:
90         apt:
91           packages:
92             - lcov
93       env: CHECK="true"
94       before_install:
95         - sudo gem install coveralls-lcov
96         - echo $CC
97         - echo $LANG
98         - echo $LC_ALL
99         - set -e
100         - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
101             eval "${MATRIX_EVAL}";
102             if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then
103               sudo apt-get install -y $CC;
104             fi;
105           fi
106       before_script:
107         - export CFLAGS="-fprofile-arcs -ftest-coverage"
108         - mkdir build && cd build && cmake ..
109       script:
110         - make
111         - make test
112       after_success:
113         - cd ..
114         - lcov -d build/ -b . -c -o build/all_coverage.info
115         - lcov -r build/all_coverage.info '/usr/*' '*CMakeFiles*' '*fuzz*' '*test*' -o build/coverage.info
116         - coveralls-lcov --verbose build/coverage.info
117
118 #  allow_failures:
119 #    - os: osx
120
121 before_install:
122   - echo $CC
123   - echo $LANG
124   - echo $LC_ALL
125   - set -e
126   - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
127       eval "${MATRIX_EVAL}";
128       if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then
129         sudo apt-get install -y $CC;
130       fi;
131     fi
132
133 before_script:
134   # XXX osx on travis doesn't work w/ set -e, so turn it off :(
135   - set +e
136   - mkdir -p build || echo "Failed to mkdir build"
137   - cd build || echo "Failed to cd build"
138   - cmake .. || echo "Failed to run cmake"
139
140 script:
141   - make
142   # when using bionic, Travis seems to ignore the "addons" section, so installing the packages with apt-get...
143   - if [ -n "$CHECK" ]; then
144       if [ "$TRAVIS_OS_NAME" = "osx" ]; then
145         brew install doxygen;
146       else
147         if [ "$TRAVIS_DIST" = "bionic" ]; then
148           sudo apt-get install -y valgrind cppcheck doxygen;
149         fi;
150       fi;
151       make distcheck;
152       if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi;
153     fi