From 67b60f2d611fbbdd04bbd8b5128ec3c3e102a5df Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sun, 12 Apr 2020 22:04:26 -0700 Subject: [PATCH 1/6] Update build name for codecov --- .ci/script.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/script.sh b/.ci/script.sh index d243f0b..a17c8b2 100755 --- a/.ci/script.sh +++ b/.ci/script.sh @@ -12,7 +12,7 @@ fi mkdir build cd build -if [ $BUILD_NAME = TRUSTY_GCC_DEBUG ]; then +if [ $BUILD_NAME = XENIAL_GCC_DEBUG ]; then cmake "-DCMAKE_BUILD_TYPE=${BUILD_TYPE}" "-DLLVM_DIR=${LLVM_DIR}" "-DCODECOV=ON" .. else cmake "-DCMAKE_BUILD_TYPE=${BUILD_TYPE}" "-DLLVM_DIR=${LLVM_DIR}" "-DCODECOV=OFF" .. @@ -36,7 +36,7 @@ if [ "${OS_NAME}" = "linux" ]; then # - https://travis-ci.org/github/personalrobotics/chimera/jobs/671301082#L2523-L2573 make tests binding_tests - if [ $BUILD_NAME = TRUSTY_GCC_DEBUG ]; then + if [ $BUILD_NAME = XENIAL_GCC_DEBUG ]; then make chimera_coverage else ctest --output-on-failure From d8696920b060bafd0fab67d787d36c5dbeec8699 Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sun, 12 Apr 2020 22:17:25 -0700 Subject: [PATCH 2/6] Upload code coverage report to CodeCov --- cmake/CodeCoverage.cmake | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake index a0b0ef5..ef283a4 100644 --- a/cmake/CodeCoverage.cmake +++ b/cmake/CodeCoverage.cmake @@ -35,6 +35,9 @@ # - Added support for Clang. # - Some additional usage instructions. # +# 2019-01-24, Brian Hou +# - Added support for Codecov uploads. +# # USAGE: # 0. (Mac only) If you use Xcode 5.1 make sure to patch geninfo as described here: @@ -132,6 +135,7 @@ FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname) SET(coverage_info "${CMAKE_BINARY_DIR}/${_outputname}.info") SET(coverage_cleaned "${coverage_info}.cleaned") + SET(codecov_script "${CMAKE_BINARY_DIR}/codecov.sh") SEPARATE_ARGUMENTS(test_command UNIX_COMMAND "${_testrunner}") @@ -148,6 +152,13 @@ FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname) COMMAND ${LCOV_PATH} --directory . --capture --output-file ${coverage_info} COMMAND ${LCOV_PATH} --remove ${coverage_info} 'tests/*' '/usr/*' --output-file ${coverage_cleaned} COMMAND ${GENHTML_PATH} -o ${_outputname} ${coverage_cleaned} + + # Upload to Codecov (added by @brianhou) + COMMAND curl -s "https://codecov.io/bash" > ${codecov_script} + COMMAND chmod +x ${codecov_script} + COMMAND ${codecov_script} -R ${CMAKE_SOURCE_DIR} -X gcov -f ${coverage_cleaned} + + # Clean up reports COMMAND ${CMAKE_COMMAND} -E remove ${coverage_info} ${coverage_cleaned} WORKING_DIRECTORY ${CMAKE_BINARY_DIR} From b9fec3a94b257988fbc3e7dce65b9455c3b5ee5d Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sun, 12 Apr 2020 22:21:21 -0700 Subject: [PATCH 3/6] Update C++ flags referring to https://github.com/codecov/example-cpp11-cmake/blob/2036eaba3f3de67d8776859bcabf93484bf4adf2/CMakeLists.txt#L17-L21 --- CMakeLists.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dbf2104..584acd4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,9 +66,7 @@ option(CODECOV "Enable CodeCov support" OFF) if(CODECOV) include(CodeCoverage) setup_target_for_coverage(${PROJECT_NAME}_coverage ctest coverage) - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage" - ) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 --coverage") endif() ########### From 761fb518cffb4348ebb27d1b2233e95d64249ce7 Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sun, 12 Apr 2020 22:52:04 -0700 Subject: [PATCH 4/6] Run codecov on native Travic CI image --- .ci/script.sh | 4 ++-- .travis.yml | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.ci/script.sh b/.ci/script.sh index a17c8b2..848f63e 100755 --- a/.ci/script.sh +++ b/.ci/script.sh @@ -12,7 +12,7 @@ fi mkdir build cd build -if [ $BUILD_NAME = XENIAL_GCC_DEBUG ]; then +if [ $BUILD_NAME = BIONIC_GCC_DEBUG_CODECOV ]; then cmake "-DCMAKE_BUILD_TYPE=${BUILD_TYPE}" "-DLLVM_DIR=${LLVM_DIR}" "-DCODECOV=ON" .. else cmake "-DCMAKE_BUILD_TYPE=${BUILD_TYPE}" "-DLLVM_DIR=${LLVM_DIR}" "-DCODECOV=OFF" .. @@ -36,7 +36,7 @@ if [ "${OS_NAME}" = "linux" ]; then # - https://travis-ci.org/github/personalrobotics/chimera/jobs/671301082#L2523-L2573 make tests binding_tests - if [ $BUILD_NAME = XENIAL_GCC_DEBUG ]; then + if [ $BUILD_NAME = BIONIC_GCC_DEBUG_CODECOV ]; then make chimera_coverage else ctest --output-on-failure diff --git a/.travis.yml b/.travis.yml index 131e72c..2e02ea2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,14 @@ env: matrix: include: - # TODO: Fix CODECOV reporting + - os: linux + compiler: gcc + env: + - BUILD_NAME=BIONIC_GCC_DEBUG_CODECOV + - BUILD_TYPE=Debug + - COMPILER=GCC + - LLVM_VERSION=6.0 + - PYTHON_VERSION=3.6 - os: linux compiler: gcc env: From d57a804026cc3a9c8666a8859a999a76794362df Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sun, 12 Apr 2020 23:20:02 -0700 Subject: [PATCH 5/6] Use sudo for installing packages --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 2e02ea2..a756c8e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,7 @@ matrix: - COMPILER=GCC - LLVM_VERSION=6.0 - PYTHON_VERSION=3.6 + - SUDO=sudo - os: linux compiler: gcc env: From 3adbd9c4f6ec1ae9faf6dbdce529b7c3144ae829 Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sun, 12 Apr 2020 23:56:20 -0700 Subject: [PATCH 6/6] Allow build with LLVM 7 --- cmake/chimeraFindLLVM.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/chimeraFindLLVM.cmake b/cmake/chimeraFindLLVM.cmake index d742c1f..ea63fc4 100644 --- a/cmake/chimeraFindLLVM.cmake +++ b/cmake/chimeraFindLLVM.cmake @@ -34,7 +34,7 @@ endif() # # Note that LLVM >= 7 causes memory leaks in chimera::util::resolveDeclaration() # See https://github.com/personalrobotics/chimera/issues/222 -set(COMPATIBLE_LLVM_VERSIONS 3.6 3.9 6.0 8.0 9.0 10.0) +set(COMPATIBLE_LLVM_VERSIONS 3.6 3.9 6.0 7.0 8.0 9.0 10.0) set(LLVM_VERSION_MAJOR_MINOR ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}) set(FOUND_COMPATIBLE_LLVM FALSE) foreach(version ${COMPATIBLE_LLVM_VERSIONS})