Skip to content

insightsengineering/coverage-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SuperLinter Test

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: 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

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:

Action output