Git Product home page Git Product logo

jest-coverage-report-action's Introduction

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
            - main
jobs:
    coverage:
        runs-on: ubuntu-latest
        if: "!contains(github.event.head_commit.message, '[skip ci]')"
        steps:
            - uses: actions/checkout@v1
            - uses: artiomtr/[email protected]
              with:
                  github-token: ${{ secrets.GITHUB_TOKEN }}
                  #   threshold: 80 # optional parameter
  1. Pay attention to the action parameters. You can specify 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 --coverageReporters="text" --coverageReporters="text-summary"

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

โš  IMPORTANT โš : Please, note that this is not simple npx jest --coverage script call. If you're specify your custom script, YOU SHOULD PASS SAME COVERAGE REPORTERS as it does default script (text and text-summary reporters). 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

Usage with yarn

By default, this action will install your dependencies using npm. If you are using yarn, you can specify it in the package-manager option:

with:
    github-token: ${{ secrets.GITHUB_TOKEN }}
    package-manager: yarn

Use existing test report(s)

To bypass running unit tests, you can pass the filepath to the current report.json

with:
    coverage-file: ./coverage/report.json
    base-coverage-file: ./coverage/master/report.json
  • coverage-file is the filepath to the JSON coverage report for the current pull request.
  • base-coverage-file is the filepath to the JSON coverage report from the branch your pull request is merging into.

For example, you can save every test run to an artifact and then download and reference them here.

Skipping steps

By default, this action will install dependencies and run the tests for you, generating the coverage report. Alternatively, you can skip these steps using the skip-step option.

with:
    github-token: ${{ secrets.GITHUB_TOKEN }}
    skip-step: all

Accepted values are:

  • none (default) - all steps will be run
  • install - skip installing dependencies
  • all - skip installing dependencies and running the test script

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.

Jest Coverage Report action is made with <3 thanks to these wonderful people (emoji key โœจ):


Artiom Tretjakovas

๐Ÿ’ป ๐Ÿ“– ๐Ÿ‘€ ๐Ÿšง ๐Ÿ–‹

Guilherme Taschetto

๐Ÿ’ป ๐Ÿ“–

Adam Tuttle

๐Ÿ’ป

dadayama

๐Ÿ’ป

bluelovers

๐Ÿ“–

gdelahodde-masteos

๐Ÿ’ป ๐Ÿ“–

jlim9333

๐Ÿ’ป

Jeremy Gillick

๐Ÿ’ป ๐Ÿ“–

Matej Zajo Kralik

๐Ÿ’ป

Sidharth Vinod

๐Ÿ’ป

Jaylen Wimbish

๐Ÿ“–

License

MIT ยฉ Artiom Tretjakovas

jest-coverage-report-action's People

Contributors

artiomtr avatar allcontributors[bot] avatar github-actions[bot] avatar dependabot[bot] avatar jgillick avatar taschetto avatar yama-sitter avatar atuttle avatar jaylenw avatar zajozor avatar sidharthv96 avatar shin-- avatar bluelovers avatar gdelahodde-masteos avatar jlim9333 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.