Action that converts a Cobertura XML report into a markdown report.
Composite
Inisghts Engineering
-
token
:Description: Github token to use to publish the check.
Required:
false
Default:
${{ github.token }}
-
path
:Description: Path to the Cobertura coverage XML report.
Required:
false
Default:
coverage.xml
-
threshold
:Description: The minimum allowed coverage percentage, as a real number.
Required:
false
Default:
0
-
fail
:Description: Fail the action when the minimum coverage was not met.
Required:
false
Default:
True
-
publish
:Description: Publish the coverage report as an issue comment.
Required:
false
Default:
False
-
diff
:Description: Create a diff of the coverage report.
Required:
false
Default:
False
-
diff-branch
:Description: Branch to diff against.
Required:
false
Default:
main
-
storage-subdirectory
:Description: Subdirectory in the diff-storage branch where the XML reports will be stored.
Required:
false
Default:
.
-
diff-storage
:Description: Branch where coverage reports are stored for diff purposes.
Required:
false
Default:
_xml_coverage_reports
-
coverage-summary-title
:Description: Title for the code coverage summary in the Pull Request comment.
Required:
false
Default:
Code Coverage Summary
-
coverage-reduction-failure
:Description: Fail the action if code coverage decreased compared to the
diff-branch
is decreased.Required:
false
Default:
False
-
new-uncovered-statements-failure
:Description: Fail the action if any new uncovered statements are introduced compared to the
diff-branch
.Required:
false
Default:
False
-
pycobertura-exception-failure
:Description: Fail the action in case of a
Pycobertura
exception.Required:
false
Default:
True
-
togglable-report
:Description: Make the code coverage report togglable.
Required:
false
Default:
False
-
exclude-detailed-coverage
:Description: Whether a detailed coverage report should be excluded from the PR comment. The detailed coverage report contains the following information per file: number of code statements, number of statements not covered by any test, coverage percentage, and line numbers not covered by any test.
Required:
false
Default:
False
-
summary
:Description: A summary of coverage report
This tool makes use of the PyCobertura CLI tool to produce the summary outputs. The action also supports diff
s against a given branch and makes use of a remote branch to store reports, which can be specified via this action.
Example usage:
---
name: Code Coverage
on:
# NOTE: Both, the 'pull_request' and the 'push'
# events are REQUIRED to take full advantage
# of the features of this action.
pull_request:
branches:
- main
push:
branches:
- main
jobs:
coverage:
name: Calculate code coverage
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Your logic to generate the Cobertura XML goes here
run: echo "Your logic to generate the Cobertura XML goes here"
- name: Produce the coverage report
uses: insightsengineering/coverage-action@v2
with:
# Path to the Cobertura XML report.
path: ./cobertura.xml
# Minimum total coverage, if you want to the
# workflow to enforce it as a standard.
# This has no effect if the `fail` arg is set to `false`.
threshold: 80.123
# Fail the workflow if the minimum code coverage
# reuqirements are not satisfied.
fail: true
# Publish the rendered output as a PR comment
publish: true
# Create a coverage diff report.
diff: true
# Branch to diff against.
# Compare the current coverage to the coverage
# determined on this branch.
diff-branch: main
# This is where the coverage reports for the
# `diff-branch` are stored.
# Branch is created if it doesn't already exist'.
diff-storage: _xml_coverage_reports
# A custom title that can be added to the code
# coverage summary in the PR comment.
coverage-summary-title: "Code Coverage Summary"
An example of the output of the action can be seen below: