11

我的 github 存储库配置遇到问题。这是- umbress。我启用并配置了 Github Actions CI,我希望在我的 repo 中有覆盖率徽章,这样每个想要在他们的项目中使用我的代码的人都知道我的代码经过了良好的测试。但似乎我错过了一些东西,因为我的报道徽章已经很长时间处于“未知”状态。

CI步骤是:

  1. 运行构建
  2. 运行测试并生成覆盖率 ( jest --coverage --config config/jest.js)。这将./coverage/lcov.info在根目录中生成
  3. 最后, Coveralls GitHub Action应该将覆盖范围上传到他们的网站并显示结果

有几个问题:

  1. 当我在拉取请求上运行构建时,它会显示“第一次构建”(但不是,我已经在这个分支上运行了很多构建) github 动作
  2. 覆盖率信息在测试后向我展示的内容和工作服统计数据中显示的内容不同(即在工作服中显示FIRST BUILD ON DEVELOPER AT 90.072%,但根本没有这样的百分比!覆盖的线路是93.43%,平均一切都是89.4%
  3. 无论我尝试更改,覆盖徽章都是“未知的”

我做错了什么,我应该怎么做才能解决这个问题?

4

1 回答 1

9

我也尝试了很多事情,最后,使用coverallsapp/github-action@v1.1.2有所帮助!现在我可以成功地将覆盖结果发布到coveralls.io

不幸的是,直接的方法要么导致“错误响应 422 - 找不到与此作业匹配的存储库”,要么导致“来自 lcovParse 的错误:'无法解析字符串'”。

直截了当的方法(不起作用):

- 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。

如果有人好奇,以下是我尝试过但失败的事情:

  • 使用 NODE_ENV 进行发布 -

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

  • 指定确切的节点版本11.8.0 及更高版本

  • 为步骤指定github.token、repo 和 env

  • 创建一个单独的Github Actions 作业

    uses: actions/setup-node@v1
    with:
      repo-token: ${{ github.token }}
      repository: ${{ github.repository }}
      GITHUB_TOKEN: ${{ github.token }}
    
于 2021-01-07T16:10:19.243 回答