insightsengineering / coverage-action

Github Action that generates a coverage summary using a Cobertura XML report
https://github.com/marketplace/actions/code-coverage-report-action
MIT License
16 stars 7 forks source link
coverage github-actions

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

Outputs

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