Skip to content

jaywcjlove/coverage-badges-cli

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

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

coverage-badges-cli

Buy me a coffee Build & Deploy Coverage Status npm version Download NPM

Create coverage badges from coverage reports. Using GitHub Actions and GitHub Workflow CPU time (no 3rd parties servers).

Don't worry about the coverage.io service is down.

Install

$ npm i coverage-badges-cli

Example

{
  "scripts": {
    "coverage": "jest --coverage"
    "make-badges": "coverage-badges",
  },
  "jest": {
    "collectCoverageFrom": [
      "<rootDir>/packages/**/*.{tsx,ts}",
      "!**/*.{js,d.ts}"
    ],
    "coverageReporters": [
      "lcov",
      "json-summary"
    ],
  }
}

This config creates a coverage badge in a default directory ./badges.

You can add ![Coverage](./coverage/badges.svg) to your README.md after the badge creation.

Github Actions

Input Parameters

  • source - The path of the target file "coverage-summary.json".
  • output - Output image path.
  • label - The left label of the badge, usually static (default coverage).
  • labelColor - <Color RGB> or <Color Name> (default: 555).
  • color - <Color RGB> or <Color Name> (default: '')
  • scale - Set badge scale (default: 1).
  • style - Badges style: flat, classic (default classic).
  • type - (No longer supported after v1.2.0) Coverage report type: lines, statements, functions, branches (default statements)
  • jsonPath - Path to the coverage percentage number to be used in the badge (default total.statements.pct)
  • icon - Path to icon file
- name: Create Coverage Badges
  uses: jaywcjlove/coverage-badges-cli@main
  with:
    style: flat
    source: coverage/coverage-summary.json
    output: coverage/badges.svg
    jsonPath: totals.percent_covered

- name: Deploy
  uses: peaceiris/actions-gh-pages@v3
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    publish_dir: ./build

Output Parameters

svg svg image string: <svg xmlns.....

Using the command line

name: Build & Deploy
on:
  push:
    branches:
      - master

jobs:
  build-deploy:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v2
      with:
        node-version: 14

    - run: npm install
    - run: npm run build
    - run: npm run coverage
    - run: npm i coverage-badges-cli -g
    - run: coverage-badges --output coverage/badges.svg

    - name: Deploy
      uses: peaceiris/actions-gh-pages@v3
      if: github.ref == 'refs/heads/master'
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./coverage

Command Help

Usage: coverage-badges [options] [--help|h]

Options:

  --version, -v  Show version number
  --help, -h     Displays help information.
  --output, -o   Output directory.
  --source, -s   The path of the target file "coverage-summary.json".
  --style        Badges style: flat, flat-square.
  --type         Coverage type: lines, statements, functions, branches.
  --scale        Set badge scale (default: 1)
  --icon         Path to icon file
  --iconWidth    Set this if icon is not square (default: 13)
  --label        The left label of the badge, usually static (default `coverage`).
  --labelColor   <Color RGB> or <Color Name> (default: '555')
  --color        <Color RGB> or <Color Name> (default: '')

Example:

  npm coverage-badges-cli --output coverage/badges.svg
  npm coverage-badges-cli --style plastic
  npm coverage-badges-cli --source coverage/coverage-summary.json
  npm coverage-badges-cli --labelColor ADF

Development

$ npm i
$ npm run build
$ npm run watch

See also

Contributors

As always, thanks to our amazing contributors!

Made with contributors.

License

MIT © Kenny Wong