GitHub行动

工作服GitHub行动

此GitHub操作将测试套件的LCOV覆盖率数据发布到Coveralls.io用于分析、更改跟踪和通知。您不需要添加回购到工作服首先,它将创建时,收到帖子。

跑步时pull_request事件,一个评论将添加到公共关系的细节,如何覆盖将如何影响,如果合并。

使用

该操作的步骤需要在测试套件输出LCOV文件之后运行。大多数主要的测试运行程序都可以配置为这样做;如果您正在使用Node,请参阅更多信息这里.

https://johnrico580.github.io/2020-503-a-test-post.html

投入:

名字 要求 描述
github-token 所需 必须在形式上github-token: ${{ secrets.GITHUB_TOKEN }}工作服使用此标记来验证回购上发布的覆盖率数据,并根据结果创建一个新的检查。它是构建在Gizub操作中的,不需要在秘密存储中手动指定。更多信息
path-to-lcov 任选 默认值:“./overage/lcov.info”。测试套件生成的lcov输出文件的本地路径。如果找不到文件,将引发错误。这是将发送到工作服API的文件。
flag-name 可选(并行时唯一要求) 职务标志名称,例如“单位”、“职能”或“整合”。将在工作服UI中显示。
parallel 任选 对于基于并行(或矩阵)的步骤设置为true,其中将在检查中执行多个到工作服的帖子。flag-name需要设置和独特,例如。flag-name: run-${{ matrix.test_number }}
parallel-finished 任选 在上一个作业中设置为true,在其他并行作业步骤完成后,这将发送一个web钩子到工作服以设置构建完成。
coveralls-endpoint 任选 主机名和协议:https://;指定工作服企业主机名。
base-path 任选 收集覆盖率的项目的根文件夹的路径。应该在单脚上使用,这样工作服才能正确地处理lcov(例如包/my-project)。

产出:

  • coveralls-api-result来自工作服API的JSON响应带有状态代码和工作服作业的url。

标准示例:

  • 本例假设您正在使用以下命令构建一个Node项目make test-coverage,在这里演示:昵称/节点工作服
on: ["push", "pull_request"]

name: Test Coveralls

jobs:

  build:
    name: Build
    runs-on: ubuntu-latest
    steps:

    - uses: actions/checkout@v1

    - name: Use Node.js 10.x
      uses: actions/setup-node@v1
      with:
        node-version: 10.x

    - name: npm install, make test-coverage
      run: |
        npm install
        make test-coverage

    - name: Coveralls
      uses: coverallsapp/github-action@master
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}

完全并行作业示例:

on: ["push", "pull_request"]

name: Test Coveralls Parallel

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        test_number:
          - 1
          - 2
    steps:
    - uses: actions/checkout@master
    - name: Use Node.js 10.x
      uses: actions/setup-node@master
      with:
        version: 10.x

    - name: npm install
      run: npm install

    - name: Test ${{ matrix.test_number }}
      run: make test-coverage-${{ matrix.test_number }}
    - name: Coveralls Parallel
      uses: coverallsapp/github-action@master
      with:
        github-token: ${{ secrets.github_token }}
        flag-name: run-${{ matrix.test_number }}
        parallel: true

  finish:
    needs: test
    runs-on: ubuntu-latest
    steps:
    - name: Coveralls Finished
      uses: coverallsapp/github-action@master
      with:
        github-token: ${{ secrets.github_token }}
        parallel-finished: true

https://johnrico580.github.io/2020-505-a-test-post.html

“已完成工作服”步骤需要在所有其他步骤完成后运行;它将让工作服知道构建中的所有作业都已完成,并且可以计算聚合覆盖率计算并发送通知。

 

演示

 

所列步骤:

https://johnrico580.github.io/2020-502-a-test-post.html

  1. 新函数f不增加测试覆盖率。
  2. 这些更改被提交并推送到一个新的分支“function/f”。
  3. 该行动在GitHub CI上运行。
  4. 提交的GitHub显示了一个新的检查工作服与细节“第一次构建功能-f在92.0%”,并链接到工作服作业。
  5. 逐行结果表明新功能没有覆盖。
  6. 使用新分支创建拉请求。
  7. 这个pull_request检查运行,由此产生的覆盖率数据将触发fail现状。
  8. 详细的评论张贴在网上。

故障排除:

工作服备注没有添加到我的拉请求中

确保调用工作服操作的工作流运行在拉请求上,例如:

on: ["push", "pull_request"]

工作服的回应是“找不到匹配的存储库”。

确保您的工作流YAML行与GitHub令牌匹配一点儿没错:

github-token: ${{ secrets.GITHUB_TOKEN }}

你可能感兴趣的:(GitHub行动)