From 0821fe53a6b2a05e893dc8426eef284a4fde6dc1 Mon Sep 17 00:00:00 2001 From: Benjamin Coe Date: Thu, 25 Jul 2024 08:33:22 -0400 Subject: [PATCH] build: update gcovr to 7.2 and codecov config --- .../workflows/coverage-linux-without-intl.yml | 6 ++++-- .github/workflows/coverage-linux.yml | 6 ++++-- .github/workflows/coverage-windows.yml | 2 ++ Makefile | 9 +++++---- codecov.yml | 19 ++++++++++--------- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml index d3dc4baf78e3d5..66c192c95d605b 100644 --- a/.github/workflows/coverage-linux-without-intl.yml +++ b/.github/workflows/coverage-linux-without-intl.yml @@ -12,6 +12,7 @@ on: - tools/gyp/** - tools/test.py - .github/workflows/coverage-linux-without-intl.yml + - codecov.yml push: branches: - main @@ -24,6 +25,7 @@ on: - tools/gyp/** - tools/test.py - .github/workflows/coverage-linux-without-intl.yml + - codecov.yml concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} @@ -58,7 +60,7 @@ jobs: - name: Environment Information run: npx envinfo - name: Install gcovr - run: pip install gcovr==4.2 + run: pip install gcovr==7.2 - name: Build run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn --coverage --without-intl" # TODO(bcoe): fix the couple tests that fail with the inspector enabled. @@ -70,7 +72,7 @@ jobs: env: NODE_OPTIONS: --max-old-space-size=8192 - name: Report C++ - run: cd out && gcovr --gcov-exclude='.*\b(deps|usr|out|obj|cctest|embedding)\b' -v -r Release/obj.target --xml -o ../coverage/coverage-cxx.xml --root=$(cd ../ && pwd) + run: gcovr --object-directory=out -v --filter src --xml -o ./coverage/coverage-cxx.xml --root=./ --gcov-executable="llvm-cov-18 gcov" # Clean temporary output from gcov and c8, so that it's not uploaded: - name: Clean tmp run: rm -rf coverage/tmp && rm -rf out diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml index 79f1f89470d41a..030eaabbe25efa 100644 --- a/.github/workflows/coverage-linux.yml +++ b/.github/workflows/coverage-linux.yml @@ -12,6 +12,7 @@ on: - tools/gyp/** - tools/test.py - .github/workflows/coverage-linux.yml + - codecov.yml push: branches: - main @@ -24,6 +25,7 @@ on: - tools/gyp/** - tools/test.py - .github/workflows/coverage-linux.yml + - codecov.yml concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} @@ -58,7 +60,7 @@ jobs: - name: Environment Information run: npx envinfo - name: Install gcovr - run: pip install gcovr==4.2 + run: pip install gcovr==7.2 - name: Build run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn --coverage" # TODO(bcoe): fix the couple tests that fail with the inspector enabled. @@ -70,7 +72,7 @@ jobs: env: NODE_OPTIONS: --max-old-space-size=8192 - name: Report C++ - run: cd out && gcovr --gcov-exclude='.*\b(deps|usr|out|obj|cctest|embedding)\b' -v -r Release/obj.target --xml -o ../coverage/coverage-cxx.xml --root=$(cd ../ && pwd) + run: gcovr --object-directory=out -v --filter src --xml -o ./coverage/coverage-cxx.xml --root=./ --gcov-executable="llvm-cov-18 gcov" # Clean temporary output from gcov and c8, so that it's not uploaded: - name: Clean tmp run: rm -rf coverage/tmp && rm -rf out diff --git a/.github/workflows/coverage-windows.yml b/.github/workflows/coverage-windows.yml index 686748b5173612..cdaaa3563904fa 100644 --- a/.github/workflows/coverage-windows.yml +++ b/.github/workflows/coverage-windows.yml @@ -12,6 +12,7 @@ on: - tools/gyp/** - tools/test.py - .github/workflows/coverage-windows.yml + - codecov.yml push: branches: - main @@ -24,6 +25,7 @@ on: - tools/gyp/** - tools/test.py - .github/workflows/coverage-windows.yml + - codecov.yml concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} diff --git a/Makefile b/Makefile index ab62b2ca7a86bb..f4a3f933c68a4f 100644 --- a/Makefile +++ b/Makefile @@ -253,7 +253,7 @@ coverage: coverage-test ## Run the tests and generate a coverage report. .PHONY: coverage-build coverage-build: all -$(MAKE) coverage-build-js - if [ ! -d gcovr ]; then $(PYTHON) -m pip install -t gcovr gcovr==4.2; fi + if [ ! -d gcovr ]; then $(PYTHON) -m pip install -t gcovr gcovr==7.2; fi $(MAKE) .PHONY: coverage-build-js @@ -269,9 +269,10 @@ coverage-test: coverage-build -NODE_V8_COVERAGE=coverage/tmp \ TEST_CI_ARGS="$(TEST_CI_ARGS) --type=coverage" $(MAKE) $(COVTESTS) $(MAKE) coverage-report-js - -(cd out && PYTHONPATH=../gcovr $(PYTHON) -m gcovr \ - --gcov-exclude='.*\b(deps|usr|out|cctest|embedding)\b' -v \ - -r ../src/ --object-directory Release/obj.target \ + -(PYTHONPATH=./gcovr $(PYTHON) -m gcovr \ + --object-directory=out \ + --filter src -v \ + --root ./ \ --html --html-details -o ../coverage/cxxcoverage.html \ --gcov-executable="$(GCOV)") @printf "Javascript coverage %%: " diff --git a/codecov.yml b/codecov.yml index 80ee32b360abce..3464efeeccfbd0 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,19 +1,20 @@ -# TODO(bcoe): re-enable coverage report comments, once we can figure out -# how to make them more accurate for the Node.js project, -# See: https://github.com/nodejs/node/issues/35759 -comment: false -# # Only show diff and files changed: -# layout: "diff, files" -# # Don't post if no changes in coverage: -# require_changes: true +comment: + # Only show diff and files changed: + layout: diff, files + # Don't post if no changes in coverage: + require_changes: true codecov: branch: main notify: # Wait for all coverage builds: - after_n_builds: 2 + # - coverage-linux.yml + # - coverage-windows.yml + # - coverage-linux-without-intl.yml + after_n_builds: 3 coverage: + # Useful for blocking Pull Requests that don't meet a particular coverage threshold. status: project: off patch: off