diff options
author | Joakim Söderberg <joakim.soderberg@gmail.com> | 2014-12-10 22:30:33 +0100 |
---|---|---|
committer | Joakim Söderberg <joakim.soderberg@gmail.com> | 2014-12-12 23:57:01 +0100 |
commit | 19f33c0e71a950c673db39ed3e8c00eee928aad3 (patch) | |
tree | e04121039d8000167d57f36a8a9fdd5d10662afb /.travis.yml | |
parent | 1c38ab17f5ab7e5f555b134fbb48eec049f383f1 (diff) | |
download | jansson-19f33c0e71a950c673db39ed3e8c00eee928aad3.zip jansson-19f33c0e71a950c673db39ed3e8c00eee928aad3.tar.gz jansson-19f33c0e71a950c673db39ed3e8c00eee928aad3.tar.bz2 |
Add support for coverage/coveralls.io in cmake project.
This adds support for http://coveralls.io/ to the cmake project. This can then be run via a new Travis job, which uploads json containing the coverage data to the website.
To use this, please login usin github at http://coveralls.io/ and enable the Jansson project. You can then get a nice percentage badge for code coverage after each Travis buid. Coveralls will also comment on pull request with coverage info.
To test and run it locally do:
```bash
$ mkdir build && cd build
$ cmake -DJANSSON_COVERALLS=ON -DCMAKE_BUILD_TYPE=Debug ..
$ cmake --build . # $ make
$ cmake --build . --target coveralls # $ make coveralls
```
There is also another script that generates a local HTML page using lcov CodeCoverage.cmake which can be run using
```bash
$ make coverage
```
The required depdencies to run this are:
gcov
curl
lcov (is needed for the normal CodeCoverage script)
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml index 452ed17..5b23c94 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,13 +2,21 @@ env: matrix: - JANSSON_BUILD_METHOD=cmake JANSSON_CMAKE_OPTIONS="-DJANSSON_TEST_WITH_VALGRIND=ON" JANSSON_EXTRA_INSTALL="valgrind" - JANSSON_BUILD_METHOD=autotools + - JANSSON_BUILD_METHOD=coverage JANSSON_CMAKE_OPTIONS="-DJANSSON_COVERAGE=ON -DJANSSON_COVERALLS=ON -DCMAKE_BUILD_TYPE=Debug" JANSSON_EXTRA_INSTALL="lcov curl" language: c compiler: - gcc - clang +matrix: + exclude: + - compiler: clang + env: JANSSON_BUILD_METHOD=coverage JANSSON_CMAKE_OPTIONS="-DJANSSON_COVERAGE=ON -DJANSSON_COVERALLS=ON -DCMAKE_BUILD_TYPE=Debug" JANSSON_EXTRA_INSTALL="lcov curl" + allow_failures: + - env: JANSSON_BUILD_METHOD=coverage JANSSON_CMAKE_OPTIONS="-DJANSSON_COVERAGE=ON -DJANSSON_COVERALLS=ON -DCMAKE_BUILD_TYPE=Debug" JANSSON_EXTRA_INSTALL="lcov curl" install: - sudo apt-get update -qq - sudo apt-get install -y -qq cmake $JANSSON_EXTRA_INSTALL script: - if [ "$JANSSON_BUILD_METHOD" = "autotools" ]; then autoreconf -f -i && CFLAGS=-Werror ./configure && make check; fi - - if [ "$JANSSON_BUILD_METHOD" = "cmake" ]; then mkdir build && cd build && cmake .. $JANSSON_CMAKE_OPTIONS && cmake --build . && ctest --output-on-failure; fi + - if [ "$JANSSON_BUILD_METHOD" = "cmake" ]; then mkdir build && cd build && cmake $JANSSON_CMAKE_OPTIONS .. && cmake --build . && ctest --output-on-failure; fi + - if [ "$JANSSON_BUILD_METHOD" = "coverage" ]; then mkdir build && cd build && cmake $JANSSON_CMAKE_OPTIONS .. && cmake --build . && cmake --build . --target coveralls; fi |