diff mbox

[PATCHv2] codecov: add code coverage integrated to github

Message ID 20170206124841.10862-1-maxim.uvarov@linaro.org
State Superseded
Headers show

Commit Message

Maxim Uvarov Feb. 6, 2017, 12:48 p.m. UTC
Results for code coverage will be available in https://codecov.io.
On each successful run in github automatic code coverage will
be run under travis ci. And at the end of travis log there will
be link to code coverage for specific commit which you push. Also
github merge requests will post automatically status of code coverage
and update it if you changed merge request to new version.

This patch also adds matrix to test both gcc and clang due to gcov
is broken Travis CI shipment. Coverage done only for gcc tests.

Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>

---
 v2:
    - more patch description about where to find results (Mike)
    - more clean matrix define.

 Note: patch needs to be applied after:
	[PATCH] linux-gen: fix dpdk pktio init
	to get succeseful build pass.

 .codecov.yml | 25 +++++++++++++++++++++++++
 .travis.yml  | 41 +++++++++++++++++++++++++++++++----------
 2 files changed, 56 insertions(+), 10 deletions(-)
 create mode 100644 .codecov.yml

-- 
2.11.0.295.gd7dffce

Comments

Mike Holmes Feb. 6, 2017, 9:20 p.m. UTC | #1
On 6 February 2017 at 07:48, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:
> Results for code coverage will be available in https://codecov.io.

> On each successful run in github automatic code coverage will

> be run under travis ci. And at the end of travis log there will

> be link to code coverage for specific commit which you push. Also

> github merge requests will post automatically status of code coverage

> and update it if you changed merge request to new version.

>

> This patch also adds matrix to test both gcc and clang due to gcov

> is broken Travis CI shipment. Coverage done only for gcc tests.


That helps in the git log but for an actual user I think the .travs
file needs to say you need to replace the CODECOV_TOKEN with your  own
token if you wish to see any output at https://codecov.io

For the coverity token we use xxx to make it obvious that change is
needed and point users in the right direction with the note
# Please update xxxx for your coverity token and notification email if required

If we keep the ODP main repo token in here for coverage, we still need
to say it needs to be replaced I think, maybe add
# Please update the CODECOV_TOKEN to see code coverage statistics at
https://codecov.io, the committed token will only work for odp
maintainers.

Mike

>

> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>

> ---

>  v2:

>     - more patch description about where to find results (Mike)

>     - more clean matrix define.

>

>  Note: patch needs to be applied after:

>         [PATCH] linux-gen: fix dpdk pktio init

>         to get succeseful build pass.

>

>  .codecov.yml | 25 +++++++++++++++++++++++++

>  .travis.yml  | 41 +++++++++++++++++++++++++++++++----------

>  2 files changed, 56 insertions(+), 10 deletions(-)

>  create mode 100644 .codecov.yml

>

> diff --git a/.codecov.yml b/.codecov.yml

> new file mode 100644

> index 00000000..86bcd1dc

> --- /dev/null

> +++ b/.codecov.yml

> @@ -0,0 +1,25 @@

> +codecov:

> +  notify:

> +    require_ci_to_pass: yes

> +

> +coverage:

> +  precision: 3

> +  round: down

> +  range: "50...75"

> +  status:

> +    project: yes

> +    patch: yes

> +    changes: yes

> +

> +parsers:

> +  gcov:

> +    branch_detection:

> +      conditional: yes

> +      loop: yes

> +      method: no

> +      macro: no

> +

> +comment:

> +  layout: "header, diff, files"

> +  behavior: default

> +  require_changes: no

> diff --git a/.travis.yml b/.travis.yml

> index f12242ce..67af2fc2 100644

> --- a/.travis.yml

> +++ b/.travis.yml

> @@ -7,6 +7,8 @@

>  # pushing to github/coverity_scan will also launch a static analysis

>  # See https://scan.coverity.com/travis_ci

>

> +language: c

> +sudo: required

>  env:

>    global:

>      # COVERITY_SCAN_TOKEN

> @@ -24,10 +26,23 @@ env:

>      # copy the secure:<key> below

>      #

>      - secure: "xxxx"

> +    - CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11

>

> -language: c

> -compiler: clang

> -sudo: required

> +matrix:

> +  include:

> +    - compiler: gcc-4.8

> +      addons:

> +        apt:

> +          sources:

> +            - ubuntu-toolchain-r-test

> +          packages:

> +            - gcc-4.8

> +      env: MY_CF="-O0 -coverage" MY_LDF="--coverage" DOCOV=1

> +    - compiler: clang

> +      addons:

> +        apt:

> +          packages:

> +            - clang

>

>  before_install:

>          - echo 1000 | sudo tee /proc/sys/vm/nr_hugepages

> @@ -37,7 +52,9 @@ before_install:

>          - sudo apt-get -qq update

>          - sudo apt-get install automake autoconf libtool libssl-dev graphviz mscgen doxygen

>          - sudo apt-get install libpcap-dev linux-headers-`uname -r`

> +        - sudo pip install coverage

>          - gem install asciidoctor

> +        - PATH=${PATH//:\.\/node_modules\/\.bin/}

>

>  #       Install cunit for the validation tests because distro version is too old and fails C99 compile

>          - export CUNIT_VERSION=2.1-3

> @@ -74,18 +91,22 @@ before_install:

>          - popd

>

>  script:

> -

> -        - ./bootstrap

> -        - ./configure --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example --with-dpdk-path=`pwd`/dpdk/${TARGET} --with-netmap-path=`pwd`/netmap

> -        - make -j 4

> -        - sudo LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" make check

> -        - sudo git clean -f -d -x && rm -rf dpdk && rm -rf netmap && rm -rf $KSRC

> -

>          - ./bootstrap

>          - ./configure

>          - make doxygen-doc

>          - make distcheck

>

> +        - ./bootstrap

> +        - ./configure --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example --with-dpdk-path=`pwd`/dpdk/${TARGET} --with-netmap-path=`pwd`/netmap CFLAGS="$MY_CF" CXXFLAGS="$MY_CF" LDFLAGS="$MY_LDF"

> +        - make -j 4

> +        - sudo LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" make check

> +        - sudo rm -rf dpdk

> +        - sudo rm -rf netmap

> +        - sudo rm -rf $KSRC

> +

> +after_success:

> +  - if [ -n "$DOCOV" ]; then find . -type f -iname '*.[ch]' -not -path ".git/*" -execdir gcov-4.8 {} \; ; bash <(curl -s https://codecov.io/bash) -X coveragepy; fi

> +

>  addons:

>      coverity_scan:

>          project:

> --

> 2.11.0.295.gd7dffce

>




-- 
Mike Holmes
Program Manager - Linaro Networking Group
Linaro.org │ Open source software for ARM SoCs
"Work should be fun and collaborative, the rest follows"
diff mbox

Patch

diff --git a/.codecov.yml b/.codecov.yml
new file mode 100644
index 00000000..86bcd1dc
--- /dev/null
+++ b/.codecov.yml
@@ -0,0 +1,25 @@ 
+codecov:
+  notify:
+    require_ci_to_pass: yes
+
+coverage:
+  precision: 3
+  round: down
+  range: "50...75"
+  status:
+    project: yes
+    patch: yes
+    changes: yes
+
+parsers:
+  gcov:
+    branch_detection:
+      conditional: yes
+      loop: yes
+      method: no
+      macro: no
+
+comment:
+  layout: "header, diff, files"
+  behavior: default
+  require_changes: no
diff --git a/.travis.yml b/.travis.yml
index f12242ce..67af2fc2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,6 +7,8 @@ 
 # pushing to github/coverity_scan will also launch a static analysis
 # See https://scan.coverity.com/travis_ci
 
+language: c
+sudo: required
 env:
   global:
     # COVERITY_SCAN_TOKEN
@@ -24,10 +26,23 @@  env:
     # copy the secure:<key> below
     #
     - secure: "xxxx"
+    - CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11
 
-language: c
-compiler: clang
-sudo: required
+matrix:
+  include:
+    - compiler: gcc-4.8
+      addons:
+        apt:
+          sources:
+            - ubuntu-toolchain-r-test
+          packages:
+            - gcc-4.8
+      env: MY_CF="-O0 -coverage" MY_LDF="--coverage" DOCOV=1
+    - compiler: clang
+      addons:
+        apt:
+          packages:
+            - clang
 
 before_install:
         - echo 1000 | sudo tee /proc/sys/vm/nr_hugepages
@@ -37,7 +52,9 @@  before_install:
         - sudo apt-get -qq update
         - sudo apt-get install automake autoconf libtool libssl-dev graphviz mscgen doxygen
         - sudo apt-get install libpcap-dev linux-headers-`uname -r`
+        - sudo pip install coverage
         - gem install asciidoctor
+        - PATH=${PATH//:\.\/node_modules\/\.bin/}
 
 #       Install cunit for the validation tests because distro version is too old and fails C99 compile
         - export CUNIT_VERSION=2.1-3
@@ -74,18 +91,22 @@  before_install:
         - popd
 
 script:
-
-        - ./bootstrap
-        - ./configure --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example --with-dpdk-path=`pwd`/dpdk/${TARGET} --with-netmap-path=`pwd`/netmap
-        - make -j 4
-        - sudo LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" make check
-        - sudo git clean -f -d -x && rm -rf dpdk && rm -rf netmap && rm -rf $KSRC
-
         - ./bootstrap
         - ./configure
         - make doxygen-doc
         - make distcheck
 
+        - ./bootstrap
+        - ./configure --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example --with-dpdk-path=`pwd`/dpdk/${TARGET} --with-netmap-path=`pwd`/netmap CFLAGS="$MY_CF" CXXFLAGS="$MY_CF" LDFLAGS="$MY_LDF"
+        - make -j 4
+        - sudo LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" make check
+        - sudo rm -rf dpdk
+        - sudo rm -rf netmap
+        - sudo rm -rf $KSRC
+
+after_success:
+  - if [ -n "$DOCOV" ]; then find . -type f -iname '*.[ch]' -not -path ".git/*" -execdir gcov-4.8 {} \; ; bash <(curl -s https://codecov.io/bash) -X coveragepy; fi
+
 addons:
     coverity_scan:
         project: