How to configure Coveralls with Github Action?

霸气de小男生 提交于 2021-02-04 05:45:33

问题


I'm experiencing problems with my github repo configuration. Here it is - umbress. I have Github Actions CI enabled and configured and I want to have the coverage badge in my repo so everyone who wants to use my code in their projects knows that my code is well-tested. But it seems that I missing something because my coverage badge has an "unknown" status for a long time already.

CI steps are:

  1. Run build
  2. Run tests and generate coverage (jest --coverage --config config/jest.js). This will generate ./coverage/lcov.info in root directory
  3. Finally Coveralls GitHub Action should upload coverage to their website and display the results

There are a few issues:

  1. When I run builds on pull requests, it says "First build" (but it's not, I've ran a lot of builds on this branch already)
  2. Coverage info is differs in what jest shows me after tests and what is displaying in Coveralls stats (i.e. in Coveralls it says FIRST BUILD ON DEVELOPER AT 90.072%, but there's no such percentage at all! Lines covered is 93.43% and everything in average is 89.4%)
  3. Coverage badge is "unknown" no matter I try to change

What am I doing wrong and what should I do to fix this?


回答1:


I've tried many things as well and in the end, the usage of the coverallsapp/github-action@v1.1.2 helped! Now I can successfully publish the coverage results to coveralls.io

Unfortunately, the straightforward approach was either leading to "Bad Response 422 - Couldn't find a repository matching this job" or "Error from lcovParse: 'Failed to parse string'".

Straightforward approach (not working):

- name: Publish to coveralls.io
  run: cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js

Using Actions app from GH marketplace (working):

- name: Publish to coveralls.io
  uses: coverallsapp/github-action@v1.1.2
  with:
    github-token: ${{ github.token }}

This is the working .yml configuration, hope it will help someone else as well.

Keep in mind that the scenario that I needed to cover was a little bit tricky, we have multiple coverage results that needed to be combined and later on used as a single output result to coveralls.io.

If someone is curious, here are the things that I've tried, but failed:

  • Use of NODE_ENV for publishing -

    run: NODE_ENV=test cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js

  • Specifying exact node version 11.8.0 and above

  • Specifying a github.token, repo and env for the steps:

  • Creating a separate Github Actions Job.

    uses: actions/setup-node@v1
    with:
      repo-token: ${{ github.token }}
      repository: ${{ github.repository }}
      GITHUB_TOKEN: ${{ github.token }}
    


来源:https://stackoverflow.com/questions/60362121/how-to-configure-coveralls-with-github-action

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!