Create coverage badges from coverage reports (no 3rd parties servers).
22
stars
132
commits
TypeScript
primary language
Apr 21, 2026
updated
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.
$ npm i coverage-badges-cli
{
"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  to your README.md after the badge creation.
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).typelines, statements, functions, branches (default statements)jsonPath - Path to the coverage percentage number to be used in the badge (default total.statements.pct)arbitrary - Allow jsonPath to point to non-number values. Works in conjunction with jsonPathicon - 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
svg svg image string: <svg xmlns.....
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
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: '')
--jsonPath Path to the coverage percentage number to be used in the badge.
--arbitrary Allow jsonPath to point to non-number values. Works in conjunction with jsonPath.
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
$ npm i
$ npm run build
$ npm run watch
As always, thanks to our amazing contributors!
Made with contributors.
MIT © Kenny Wong
TypeScript
99.6%
Create coverage badges from coverage reports (no 3rd parties servers).
22
stars
132
commits
TypeScript
primary language
Apr 21, 2026
updated
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.
$ npm i coverage-badges-cli
{
"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  to your README.md after the badge creation.
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).typelines, statements, functions, branches (default statements)jsonPath - Path to the coverage percentage number to be used in the badge (default total.statements.pct)arbitrary - Allow jsonPath to point to non-number values. Works in conjunction with jsonPathicon - 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
svg svg image string: <svg xmlns.....
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
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: '')
--jsonPath Path to the coverage percentage number to be used in the badge.
--arbitrary Allow jsonPath to point to non-number values. Works in conjunction with jsonPath.
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
$ npm i
$ npm run build
$ npm run watch
As always, thanks to our amazing contributors!
Made with contributors.
MIT © Kenny Wong
TypeScript
99.6%