Skip to content
This repository has been archived by the owner on Dec 5, 2023. It is now read-only.

thredup/jest-coverage-report-action

 
 

Repository files navigation

jest coverage report 🧪

PR Comment example

A GitHub action that reports about your code coverage in every pull request.

MIT License Issues

This action uses Jest to extract code coverage, and comments it on pull request. Inspired by Size-limit action. Features:

  • Reporting code coverage on each pull request. 📃
  • Rejecting pull request, if coverage is under threshold. ❌
  • Comparing coverage with base branch. 🔍
  • Showing spoiler in the comment for all new covered files. 🆕
  • Showing spoiler in the comment for all files, in which coverage was reduced. 🔻

PR Comment example

Usage

  1. Install and configure Jest.
  2. Create new action inside .github/workflows:

Minimal configuration

name: 'coverage'
on:
    pull_request:
        branches:
            - master
jobs:
    coverage:
        runs-on: ubuntu-latest
        env:
            CI_JOB_NUMBER: 1
        steps:
            - uses: actions/checkout@v1
            - uses: artiomtr/jest-coverage-report-action@v1.3
              with:
                  github_token: ${{ secrets.GITHUB_TOKEN }}
                  #   threshold: 80 # optional parameter
  1. Pay attention to the action parameters. You can specify a custom threshold or test script
  2. That's it!

Specify threshold

If you want to set minimal accepted coverage for the PR, you can pass and optional parameter threshold.

For example, if you want to reject every pull request, with total line coverage less than 80%:

with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    threshold: 80 # value in percents

Custom working directory

If you want to run this action in custom directory, specify working-directory:

with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    working_directory: <dir>

Customizing test script

By default, this action will run this command, to extract coverage:

npx jest --silent --ci --coverage --testLocationInResults --json --outputFile="report.json"

If you're not satisfied with default behaviour, you can specify your own command, by passing custom option test_script.

⚠ IMPORTANT ⚠: Please, note that if you specify a custom script, you should pass the same testLocationInResults, json and outputFile options as it does in the default script. Without those options, your action will not work.

For instance, if you want to run test:coverage npm script:

with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    test_script: npm run test:coverage

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT © Artiom Tretjakovas

About

Track your code coverage in each pull request.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 97.2%
  • JavaScript 2.6%
  • Dockerfile 0.2%