travis: Create coverage report via codecov.io
authorTobias Brunner <tobias@strongswan.org>
Wed, 15 Mar 2017 09:19:02 +0000 (10:19 +0100)
committerTobias Brunner <tobias@strongswan.org>
Wed, 15 Mar 2017 09:19:02 +0000 (10:19 +0100)
.codecov.yml [new file with mode: 0644]
.travis.yml
scripts/test.sh

diff --git a/.codecov.yml b/.codecov.yml
new file mode 100644 (file)
index 0000000..aa85a5a
--- /dev/null
@@ -0,0 +1,3 @@
+ignore:
+  - "*/suites/*"
+  - "*/tests/*"
index 5322e69..e1329b3 100644 (file)
@@ -17,6 +17,11 @@ before_script:
 script:
   - ./scripts/test.sh
 
+after_success:
+  if [ "$TEST" == "coverage" ]; then
+    bash <(curl -s https://codecov.io/bash);
+  fi
+
 after_failure:
   - cat config.log
 
@@ -47,6 +52,8 @@ matrix:
     - compiler: gcc
       env: TEST=apidoc
     - compiler: gcc
+      env: TEST=coverage
+    - compiler: gcc
       env: TEST=win64 MONOLITHIC=yes
     # this does not work on 14.04 due to a missing @4 decoration for
     # TryAcquireSRWLockExclusive in MinGW 3.1.0
index db24222..50e1546 100755 (executable)
@@ -29,7 +29,7 @@ gcrypt)
 printf-builtin)
        CONFIG="--with-printf-hooks=builtin"
        ;;
-all)
+all|coverage)
        CONFIG="--enable-all --disable-android-dns --disable-android-log
                        --disable-dumm --disable-kernel-pfroute --disable-keychain
                        --disable-lock-profiler --disable-padlock
@@ -41,8 +41,12 @@ all)
        CONFIG="$CONFIG --disable-aikpub2 --disable-tss-tss2"
        # not enabled on the build server
        CONFIG="$CONFIG --disable-af-alg"
-       # TODO: enable? perhaps via coveralls.io (cpp-coveralls)?
-       CONFIG="$CONFIG --disable-coverage"
+       if test "$TEST" != "coverage"; then
+               CONFIG="$CONFIG --disable-coverage"
+       else
+               # not actually required but configure checks for it
+               DEPS="$DEPS lcov"
+       fi
        DEPS="$DEPS libcurl4-gnutls-dev libsoup2.4-dev libunbound-dev libldns-dev
                  libmysqlclient-dev libsqlite3-dev clearsilver-dev libfcgi-dev
                  libnm-glib-dev libnm-glib-vpn-dev libpcsclite-dev libpam0g-dev