如何在 Github Action 中配置 Coveralls?

12
我遇到了github仓库配置的问题。这是我的仓库链接:umbress。我已经启用和配置了Github Actions CI,并希望在我的仓库中拥有覆盖率徽章,以便所有想要在他们的项目中使用我的代码的人都知道我的代码经过了充分的测试。但是我的覆盖率徽章长时间以来一直显示为“未知状态”,似乎我漏掉了某些步骤。
CI步骤如下:
  1. 运行构建
  2. 运行测试并生成覆盖率报告(jest --coverage --config config/jest.js)。这将在根目录下生成./coverage/lcov.info
  3. 最后,Coveralls GitHub Action应上传覆盖率信息到他们的网站并显示结果
以下是几个问题:
  1. 当我在拉取请求上运行构建时,它会显示“第一个构建”(但实际上不是,我已经在此分支上运行了很多构建)
  2. github actions
  3. 覆盖率信息与jest测试后显示的信息不同,在Coveralls统计中显示(即在Coveralls上,它说FIRST BUILD ON DEVELOPER AT 90.072%,但实际上根本没有这个百分比!行数达到了93.43%,平均值为89.4%
  • 无论我尝试如何更改,覆盖率徽章都显示为“未知”
  • 我做错了什么,应该怎么做才能解决这个问题?

    1个回答

    12
    我也尝试了很多方法,最终使用coverallsapp/github-action@v1.1.2这个工具成功地将覆盖率结果发布到了coveralls.io。
    不幸的是,直接的方法会导致“Bad Response 422 - Couldn't find a repository matching this job”或“Error from lcovParse: 'Failed to parse string'”错误。
    直接的方法(不起作用):
    - name: Publish to coveralls.io
      run: cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
    

    使用 GH 市场上的 Actions 应用程序(可用):

    - name: Publish to coveralls.io
      uses: coverallsapp/github-action@v1.1.2
      with:
        github-token: ${{ github.token }}
    
    这是可用的 .yml 配置文件,希望对其他人有所帮助。 请注意,我需要处理的情况有点棘手,我们有多个覆盖率结果需要合并,然后作为单个输出结果用于 coveralls.io。
    如果有人感兴趣,这些是我尝试过但失败的方法:
    • 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 }}
      

    1
    无论是Coveralls文档还是npm Coveralls包,都建议使用Coveralls GitHub Action(正如您在答案中建议的那样)。因此,我想这就是前进的方式! - bmaupin

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接