continuous-integration - 如何使用 Github Action 配置工作服?

标签 continuous-integration code-coverage github-actions coveralls

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

CI步骤是:

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

  • 有几个问题:
  • 当我根据拉取请求运行构建时,它会显示“首次构建”(但事实并非如此,我已经在这个分支上运行了很多构建)
    github actions
  • 覆盖率信息在测试后给我展示的笑话和 Coveralls 统计信息中显示的内容不同(即在 Coveralls 中显示 FIRST BUILD ON DEVELOPER AT 90.072% ,但根本没有这样的百分比!覆盖的行是 93.43%,平均所有内容是 89.4% )
  • 无论我尝试更改,覆盖标志都是“未知”

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

    最佳答案

    我也尝试了很多东西,最后,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 }}
    
    这是working .yml configuration ,希望它也能帮助别人。
    请记住,我需要覆盖的场景有点棘手,我们有多个覆盖结果需要组合,稍后用作单个输出结果到 coveralls.io。
    如果有人好奇,这里是我尝试过但失败的事情:
  • 使用 NODE_ENV 进行发布 -
    运行: NODE_ENV=测试 猫./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
  • 指定确切的节点版本 11.8.0 and above
  • 指定 github.token、repo 和 env 对于步骤:
  • 创建一个单独的 Github Actions 工作 .
    uses: actions/setup-node@v1
    with:
      repo-token: ${{ github.token }}
      repository: ${{ github.repository }}
      GITHUB_TOKEN: ${{ github.token }}
    
  • 关于continuous-integration - 如何使用 Github Action 配置工作服?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60362121/

    相关文章:

    github - 如何显示当前运行分支的 GitHub 操作徽章?

    github - Lerna总是在运行Github操作的工作流程时列出所有准备发布的软件包

    .net - CruiseControl CommunicationsException 对象引用错误

    swift - 如何使用 UI 单元测试获取嵌入式框架的 Xcode 8 代码覆盖率

    continuous-integration - travis:sh:0:无法打开/etc/init.d/xvfb

    java - 如何在idea中配置默认​​的coverage runner?

    c++ - 为 lcov 生成分支覆盖率数据

    docker - Github Actions - 创建快速运行的 Action

    jenkins - 如何在管道脚本中使 Jenkins 节点离线

    linux - Jenkins API 不工作 - "Empty reply from server"