GitHub Action
Jest badges generation action
Generating coverage badges and pushing them to the repository.
This github action generates testing coverage badges using jest and pushes them to the repo at ./badges
. There is five badges generated:
You can use them on a readme like so:
![Branches](./badges/coverage-branches.svg)
![Functions](./badges/coverage-functions.svg)
![Lines](./badges/coverage-lines.svg)
![Statements](./badges/coverage-statements.svg)
![Jest coverage](./badges/coverage-jest%20coverage.svg)
You will need to add json-summary to coverage reporters in jest config:
module.exports = {
coverageReporters: ["json-summary"];
};
You also need to run jest before calling this action in your ci workflow. See usage
for an example.
If set to true
, badges won't be committed by the github action.
Default value: false*
Branches on which the badges should be generated, separated by commas.
Default value: master,main
Jest coverage summary path (json-summary). Defining this may be useful if you need to run this action on a monorepo.
Default value: ./coverage/coverage-summary.json
Commit message of the commit with generated badges.
Default value: Updating coverage badges
Customizing the name of the user committing generated badges (optional).
Default value: <context.actor>
Customizing the email of the user committing generated badges (optional).
Default value: <context.actor>@users.noreply.github.com
Let's first define an npm script to run jest in package.json, specifying the coverage option to generate a coverage report:
{
"scripts": {
"test-ci": "jest --ci --coverage"
}
}
Let's then define our workflow:
name: My ci things
on: [push]
jobs:
bump:
runs-on: ubuntu-latest
steps:
# Necessary to push the generated badges to the repo
- name: Check out repository code
uses: actions/checkout@v2
# Necessary to generate the coverage report.
# Make sure to add 'json-summary' to the coverageReporters in jest options
- name: Tests
run: yarn test-ci
[...]
- name: Generating coverage badges
uses: jpb06/jest-badges-action@latest
with:
branches: master,preprod,staging
The badges will be generated when the action runs on the master, preprod or staging branch.
In case you need to define a custom path for the coverage summary file, you can use the coverage-summary-path
input like so:
[...]
- name: Generating coverage badges
uses: jpb06/jest-badges-action@latest
with:
coverage-summary-path: ./my-module/coverage/coverage-summary.json