Skip to content

johanvanhelden/gha-clover-test-coverage-check

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

Repository files navigation

gha-clover-test-coverage-check

A clover test coverage checker for Github Actions.

Usage

Simply add the following step to your workflow:

- name: Check test coverage
  id: test-coverage
  uses: johanvanhelden/gha-clover-test-coverage-check@v1
  with:
    percentage: "95"
    filename: "coverage.xml"

Creating a badge using the output

Using a badge action, you can create a badge based on the code coverage:

- name: Check test coverage
  uses: johanvanhelden/gha-clover-test-coverage-check@v1
  id: coverage
  with:
    percentage: "50"
    filename: "coverage.xml"

- name: Generate the badge SVG image
  uses: emibcn/badge-action@v1
  id: badge
  with:
    label: 'Coverage'
    status: ${{ steps.coverage.outputs.coverage }}
    path: ./badges/test-coverage.svg
    color: ${{ steps.coverage.outputs.coveragelines > 75 && 'green' || 'red' }}

If you want more colors and gradients, you can set it up the color property like this:

color: ${{
      steps.coverage.outputs.coverage > 90 && 'green'              ||
      steps.coverage.outputs.coverage > 80 && 'yellow,green'       ||
      steps.coverage.outputs.coverage > 70 && 'yellow'             ||
      steps.coverage.outputs.coverage > 60 && 'orange,yellow'      ||
      steps.coverage.outputs.coverage > 50 && 'orange'             ||
      steps.coverage.outputs.coverage > 40 && 'red,orange'         ||
      steps.coverage.outputs.coverage > 30 && 'red,red,orange'     ||
      steps.coverage.outputs.coverage > 20 && 'red,red,red,orange' ||
      'red' }}

Input

percentage

The minimum percentage of coverage allowed.

filename

The filename of the clover coverage XML file.

rounded-precision (optional)

The precision of the rounded coverage value. Where 0 will round to the highest rounded number (e.g: 99.999999 > 100). By default: 2.

exit (optional)

Whether the coverage check should exit if the required percentage is not met. By default: true.

metric (optional)

The metric to get and process. By default: elements.

Output

Output is exported as GitHub Action output.

You can use it in other steps, for example:

- name: Test coverage
  run: echo "${{ steps.test-coverage.outputs.coverage }}"

Or make a step conditional:

- name: Test coverage report
  if: steps.test-coverage.outputs.coverage > 50
  run: echo "We are more than halfway there!"

coverage

The calculated coverage value.

coverage-display

The calculated coverage value for display purposes.

coverage-rounded

The rounded coverage value.

coverage-rounded-display

The rounded calculated coverage value for display purposes.

coverage-acceptable

The true or false value of the check result. You can use this output with the exit input to implement your own coverage logic.

Generating a coverage report

This is how you can generate a test coverage report using PHPUnit:

- name: Generate code coverage
  run: ./vendor/bin/phpunit --coverage-clover ./coverage.xml

Action Development

You can test the action locally by running: docker-compose up --build Any arguments can be configured in the docker-compose.yml file.

Building and publishing

Building happens automatically once a new version is tagged.

To push a manual build, ensure you are logged in locally to hub.docker.com using docker login and have access to the hub repository. (note: your username is used, not your email address).

$ docker build ./ --tag johanvanhelden/gha-clover-test-coverage-check:TAG
$ docker push johanvanhelden/gha-clover-test-coverage-check:TAG

Replace TAG with the tag you are working on.

About

A clover coverage checker

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages