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 ![Coverage](./coverage/badges.svg)
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
).style
- Badges style: flat
, classic
(default classic
).type
lines
, statements
, functions
, branches
(default statements
)jsonPath
- Path to the coverage percentage number to be used in the badgeicon
- 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.
--icon Path to icon file
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 --type lines
npm coverage-badges-cli --icon my-icon.svg
$ npm i
$ npm run build
$ npm run watch
As always, thanks to our amazing contributors!
Made with contributors.
MIT © Kenny Wong