From 5a29881c8f571e1be831075ccc19c6c5b1e595b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 12 Feb 2018 19:25:07 +0100 Subject: [PATCH] package/ci: switched to codecov.io, merge Linux, macOS and GLES reports. --- README.md | 2 +- doc/building.dox | 4 ++-- package/ci/travis-desktop-gles.sh | 6 ++++-- package/ci/travis-desktop.sh | 1 + package/ci/travis.yml | 20 ++++++++++++++++---- 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index bf3bb7c9f..aa7cdcf36 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ commercial purposes. [![Join the chat at https://gitter.im/mosra/magnum](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mosra/magnum?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status](https://travis-ci.org/mosra/magnum.svg?branch=master)](https://travis-ci.org/mosra/magnum) [![Build Status](https://ci.appveyor.com/api/projects/status/5b477m034cfaskse/branch/master?svg=true)](https://ci.appveyor.com/project/mosra/magnum/branch/master) -[![Coverage Status](https://coveralls.io/repos/github/mosra/magnum/badge.svg?branch=master)](https://coveralls.io/github/mosra/magnum?branch=master) +[![Coverage Status](https://codecov.io/gh/mosra/magnum/branch/master/graph/badge.svg)](https://codecov.io/gh/mosra/magnum) [![MIT License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) - Project homepage — http://magnum.graphics/ diff --git a/doc/building.dox b/doc/building.dox index 80f96f17b..bc1ceacb6 100644 --- a/doc/building.dox +++ b/doc/building.dox @@ -861,8 +861,8 @@ building your projects for Android. In `package/ci/` there is a `travis.yml` file with Linux GCC 4.7, macOS, Linux desktop GLES2/GLES3, iOS GLES2/GLES3, Emscripten WebGL1/WebGL2, Android GLES2/GLES3, AddressSanitizer and ThreadSanitizer configuration. Online at -https://travis-ci.org/mosra/magnum. The Linux build has code coverage reports -available online at https://coveralls.io/github/mosra/magnum. +https://travis-ci.org/mosra/magnum. The builds have code coverage reports +available online at https://codecov.io/gh/mosra/magnum. @subsection building-ci-appveyor AppVeyor diff --git a/package/ci/travis-desktop-gles.sh b/package/ci/travis-desktop-gles.sh index b70623ae5..4e8029b85 100755 --- a/package/ci/travis-desktop-gles.sh +++ b/package/ci/travis-desktop-gles.sh @@ -6,9 +6,10 @@ git clone --depth 1 git://github.com/mosra/corrade.git cd corrade mkdir build && cd build cmake .. \ + -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \ -DCMAKE_INSTALL_PREFIX=$HOME/deps \ -DCMAKE_INSTALL_RPATH=$HOME/deps/lib \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_BUILD_TYPE=Debug \ -DWITH_INTERCONNECT=OFF \ -G Ninja ninja install @@ -16,8 +17,9 @@ cd ../.. mkdir build && cd build cmake .. \ + -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \ -DCMAKE_PREFIX_PATH="$HOME/deps" \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_BUILD_TYPE=Debug \ -DTARGET_GLES=ON \ -DTARGET_GLES2=$TARGET_GLES2 \ -DTARGET_DESKTOP_GLES=ON \ diff --git a/package/ci/travis-desktop.sh b/package/ci/travis-desktop.sh index 460c0a429..f50c3c3fa 100755 --- a/package/ci/travis-desktop.sh +++ b/package/ci/travis-desktop.sh @@ -6,6 +6,7 @@ git clone --depth 1 git://github.com/mosra/corrade.git cd corrade mkdir build && cd build cmake .. \ + -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \ -DCMAKE_INSTALL_PREFIX=$HOME/deps \ -DCMAKE_INSTALL_RPATH=$HOME/deps/lib \ -DCMAKE_BUILD_TYPE=Debug \ diff --git a/package/ci/travis.yml b/package/ci/travis.yml index 128c001b7..b086aee89 100644 --- a/package/ci/travis.yml +++ b/package/ci/travis.yml @@ -6,6 +6,7 @@ addons: - libgl1-mesa-dev - g++-4.7 - ninja-build + - lcov - libsdl2-dev - freeglut3-dev - libopenal-dev @@ -24,6 +25,8 @@ matrix: env: - JOBID=linux-desktop - TARGET=desktop + - CMAKE_CXX_FLAGS="--coverage" + - LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.7" - language: cpp os: linux dist: trusty @@ -63,6 +66,8 @@ matrix: - JOBID=linux-es2 - TARGET=desktop-gles - TARGET_GLES2=ON + - CMAKE_CXX_FLAGS="--coverage" + - LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.7" - language: cpp os: linux dist: trusty @@ -71,12 +76,15 @@ matrix: - JOBID=linux-es3 - TARGET=desktop-gles - TARGET_GLES2=OFF + - CMAKE_CXX_FLAGS="--coverage" + - LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.7" - language: cpp os: osx compiler: clang env: - JOBID=macos-desktop - TARGET=desktop + - CMAKE_CXX_FLAGS="--coverage" - language: cpp os: osx osx_image: xcode7.3 @@ -161,8 +169,6 @@ cache: - $HOME/cmake install: -- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ] && [ "$BUILD_DEPRECATED" != "OFF" ]; then pip install --user urllib3[secure] && pip install --user cpp-coveralls && export CMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS --coverage"; fi - - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! "$TARGET" == "desktop-sanitizers" ]; then export CXX=g++-4.7; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop-sanitizers" ]; then export CXX=clang++-3.8; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then export WITH_GLUTAPPLICATION=ON; fi @@ -176,6 +182,7 @@ install: - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "android" ] && [ ! -e "$HOME/cmake/bin" ]; then cd $HOME ; wget -nc --no-check-certificate https://cmake.org/files/v2.8/cmake-2.8.12.2-Linux-i386.tar.gz && mkdir -p cmake && cd cmake && tar --strip-components=1 -xzvf ../cmake-2.8.12.2-Linux-i386.tar.gz && cd $TRAVIS_BUILD_DIR ; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "android" ]; then export PATH=$HOME/cmake/bin:$PATH; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja; fi +- if [ "$TRAVIS_OS_NAME" == "osx" ] && [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install lcov; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then export PLATFORM_GL_API=CGL; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then gem install xcpretty; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "emscripten" ]; then brew install emscripten && export LLVM=/usr/local/opt/emscripten/libexec/llvm/bin && emcc; fi @@ -200,5 +207,10 @@ script: - sync after_success: -# Ignoring all stuff that needs GL context and thus can't be run on Travis -- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ] && [ "$BUILD_DEPRECATED" != "OFF" ]; then coveralls --gcov /usr/bin/gcov-4.7 -i src/ -E "(.*/(Test|MagnumExternal|Shaders|Platform)/.*|.*/src/Magnum/(AbstractFramebuffer|AbstractObject|AbstractQuery|AbstractShaderProgram|AbstractTexture|Buffer|BufferImage|BufferTexture|Context|CubeMapTexture|CubeMapTextureArray|DebugOutput|DefaultFramebuffer|Framebuffer|Mesh|MeshView|MultisampleTexture|OpenGL|PixelStorage|PrimitiveQuery|RectangleTexture|Renderbuffer|Renderer|SampleQuery|Sampler|Shader|Texture|TextureArray|TimeQuery|TransformFeedback|Implementation/BufferState|Implementation/DebugState|Implementation/driverSpecific|Implementation/FramebufferState|Implementation/maxTextureSize|Implementation/MeshState|Implementation/QueryState|Implementation/RendererState|Implementation/ShaderProgramState|Implementation/ShaderState|Implementation/State|Implementation/TextureState|Implementation/TransformFeedbackState)\\.(cpp|h))" --gcov-options '\-lp' > /dev/null; fi +# Keep in sync with PKBUILD-coverage, please +- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --directory . --capture --output-file coverage.info > /dev/null; fi +- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --extract coverage.info "*/src/Magnum*/*" --output-file coverage.info > /dev/null; fi +- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --remove coverage.info "*/MagnumExternal/*" --output-file coverage.info > /dev/null; fi +- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --remove coverage.info "*/Test/*" --output-file coverage.info > /dev/null; fi +- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then lcov $LCOV_EXTRA_OPTS --remove coverage.info "*/build/src/*" --output-file coverage.info > /dev/null; fi +- if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.info; fi