From 7ffdb33cc0103b4a5da935210b47e2a53de20340 Mon Sep 17 00:00:00 2001 From: Bronek Kozicki Date: Wed, 3 Apr 2024 19:15:58 +0100 Subject: [PATCH 1/3] Codecov coverage reporting fixes --- .codecov.yml | 10 ++++++++++ .github/workflows/nix.yml | 12 ++++++++---- Builds/CMake/CodeCoverage.cmake | 21 +++++++++++++++++---- 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/.codecov.yml b/.codecov.yml index 191144aae16..ad57398627d 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -4,3 +4,13 @@ coverage: default: target: 60% threshold: 2% + +parsers: + cobertura: + partials_as_hits: true + handle_missing_conditions : true + +ignore: + - "src/test/" + - "src/ripple/beast/test/" + - "src/ripple/beast/unit_test/" diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index 916bd389e85..da61963b3f2 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -179,6 +179,8 @@ jobs: run: | mkdir -p ~/.conan tar -xzf conan.tar -C ~/.conan + - name: install gcovr + run: pip install "gcovr>=7,<8" - name: check environment run: | echo ${PATH} | tr ':' '\n' @@ -207,7 +209,7 @@ jobs: -DCMAKE_CXX_FLAGS="-O0" -DCMAKE_C_FLAGS="-O0" cmake-target: coverage - - name: build + - name: move coverage report shell: bash run: | mv "${build_dir}/coverage.xml" ./ @@ -218,13 +220,15 @@ jobs: path: coverage.xml retention-days: 30 - name: upload coverage report - uses: wandalen/wretry.action@v1.3.0 + uses: wandalen/wretry.action@v1.4.10 with: - action: codecov/codecov-action@v4 + action: codecov/codecov-action@v4.3.0 with: | files: coverage.xml fail_ci_if_error: true + disable_search: true verbose: true + plugin: noop token: ${{ secrets.CODECOV_TOKEN }} attempt_limit: 5 - attempt_delay: 35000 # in milliseconds + attempt_delay: 210000 # in milliseconds diff --git a/Builds/CMake/CodeCoverage.cmake b/Builds/CMake/CodeCoverage.cmake index d2af481d8a3..323303c92dc 100644 --- a/Builds/CMake/CodeCoverage.cmake +++ b/Builds/CMake/CodeCoverage.cmake @@ -95,6 +95,9 @@ # - replace both functions setup_target_for_coverage_gcovr_* with a single setup_target_for_coverage_gcovr # - add support for all gcovr output formats # +# 2024-04-03, Bronek Kozicki +# - add support for output formats: jacoco, clover, lcov +# # USAGE: # # 1. Copy this file into your cmake modules path. @@ -256,10 +259,10 @@ endif() # BASE_DIRECTORY "../" # Base directory for report # # (defaults to PROJECT_SOURCE_DIR) # FORMAT "cobertura" # Output format, one of: -# # xml cobertura sonarqube json-summary -# # json-details coveralls csv txt -# # html-single html-nested html-details -# # (xml is an alias to cobertura; +# # xml cobertura sonarqube jacoco clover +# # json-summary json-details coveralls csv +# # txt html-single html-nested html-details +# # lcov (xml is an alias to cobertura; # # if no format is set, defaults to xml) # EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative # # to BASE_DIRECTORY, with CMake 3.4+) @@ -308,6 +311,8 @@ function(setup_target_for_coverage_gcovr) set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.txt) elseif(Coverage_FORMAT STREQUAL "csv") set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.csv) + elseif(Coverage_FORMAT STREQUAL "lcov") + set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.lcov) else() set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.xml) endif() @@ -320,6 +325,14 @@ function(setup_target_for_coverage_gcovr) set(Coverage_FORMAT cobertura) # overwrite xml elseif(Coverage_FORMAT STREQUAL "sonarqube") list(APPEND GCOVR_ADDITIONAL_ARGS --sonarqube "${GCOVR_OUTPUT_FILE}" ) + elseif(Coverage_FORMAT STREQUAL "jacoco") + list(APPEND GCOVR_ADDITIONAL_ARGS --jacoco "${GCOVR_OUTPUT_FILE}" ) + list(APPEND GCOVR_ADDITIONAL_ARGS --jacoco-pretty ) + elseif(Coverage_FORMAT STREQUAL "clover") + list(APPEND GCOVR_ADDITIONAL_ARGS --clover "${GCOVR_OUTPUT_FILE}" ) + list(APPEND GCOVR_ADDITIONAL_ARGS --clover-pretty ) + elseif(Coverage_FORMAT STREQUAL "lcov") + list(APPEND GCOVR_ADDITIONAL_ARGS --lcov "${GCOVR_OUTPUT_FILE}" ) elseif(Coverage_FORMAT STREQUAL "json-summary") list(APPEND GCOVR_ADDITIONAL_ARGS --json-summary "${GCOVR_OUTPUT_FILE}" ) list(APPEND GCOVR_ADDITIONAL_ARGS --json-summary-pretty) From 803033e70299412286d37b5b8cc563a3eef0fdd1 Mon Sep 17 00:00:00 2001 From: Bronek Kozicki Date: Fri, 12 Apr 2024 17:23:40 +0100 Subject: [PATCH 2/3] Enable github annotations --- .codecov.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.codecov.yml b/.codecov.yml index ad57398627d..9d86ca7d01b 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -1,15 +1,33 @@ +codecov: + require_ci_to_pass: true + +comment: + behavior: default + layout: reach,diff,flags,tree,reach + show_carryforward_flags: false + coverage: status: project: default: target: 60% threshold: 2% + patch: + default: + target: auto + threshold: 2% + changes: false + +github_checks: + annotations: true parsers: cobertura: partials_as_hits: true handle_missing_conditions : true +slack_app: false + ignore: - "src/test/" - "src/ripple/beast/test/" From 0a308affcc22999ca6eab196cafdf6034ba00fcb Mon Sep 17 00:00:00 2001 From: Bronek Kozicki Date: Fri, 12 Apr 2024 18:02:35 +0100 Subject: [PATCH 3/3] Set expected range and codecov rounding --- .codecov.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.codecov.yml b/.codecov.yml index 9d86ca7d01b..3e6f09d58ae 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -7,6 +7,9 @@ comment: show_carryforward_flags: false coverage: + range: "60..80" + precision: 1 + round: nearest status: project: default: