coverage-action
coverage-action copied to clipboard
Github Action that generates a coverage summary using a Cobertura XML report
Code Coverage Report Action
Description
Action that converts a Cobertura XML report into a markdown report.
Action Type
Composite
Author
Inisghts Engineering
Inputs
-
token:Description: Github token to use to publish the check.
Required:
falseDefault:
${{ github.token }} -
path:Description: Path to the Cobertura coverage XML report.
Required:
falseDefault:
coverage.xml -
threshold:Description: The minimum allowed coverage percentage, as a real number.
Required:
falseDefault:
0 -
fail:Description: Fail the action when the minimum coverage was not met.
Required:
falseDefault:
True -
publish:Description: Publish the coverage report as an issue comment.
Required:
falseDefault:
False -
diff:Description: Create a diff of the coverage report.
Required:
falseDefault:
False -
diff-branch:Description: Branch to diff against.
Required:
falseDefault:
main -
storage-subdirectory:Description: Subdirectory in the diff-storage branch where the XML reports will be stored.
Required:
falseDefault:
. -
diff-storage:Description: Branch where coverage reports are stored for diff purposes.
Required:
falseDefault:
_xml_coverage_reports -
coverage-summary-title:Description: Title for the code coverage summary in the Pull Request comment.
Required:
falseDefault:
Code Coverage Summary -
coverage-reduction-failure:Description: Fail the action if code coverage decreased compared to the
diff-branchis decreased.Required:
falseDefault:
False -
new-uncovered-statements-failure:Description: Fail the action if any new uncovered statements are introduced compared to the
diff-branch.Required:
falseDefault:
False -
pycobertura-exception-failure:Description: Fail the action in case of a
Pycoberturaexception.Required:
falseDefault:
True -
togglable-report:Description: Make the code coverage report togglable.
Required:
falseDefault:
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:
falseDefault:
False
Outputs
-
summary:Description: A summary of coverage report
How it works
This tool makes use of the PyCobertura CLI tool to produce the summary outputs. The action also supports diffs against a given branch and makes use of a remote branch to store reports, which can be specified via this action.
Usage
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:
