工作服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://<host> ;指定工作服企业主机名。 |
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
- 新函数
f
不增加测试覆盖率。 - 这些更改被提交并推送到一个新的分支“function/f”。
- 该行动在GitHub CI上运行。
- 提交的GitHub显示了一个新的检查工作服与细节“第一次构建功能-f在92.0%”,并链接到工作服作业。
- 逐行结果表明新功能没有覆盖。
- 使用新分支创建拉请求。
- 这个
pull_request
检查运行,由此产生的覆盖率数据将触发fail
现状。 - 详细的评论张贴在网上。
故障排除:
工作服备注没有添加到我的拉请求中
确保调用工作服操作的工作流运行在拉请求上,例如:
on: ["push", "pull_request"]
工作服的回应是“找不到匹配的存储库”。
确保您的工作流YAML行与GitHub令牌匹配一点儿没错:
github-token: ${{ secrets.GITHUB_TOKEN }}