【发布时间】:2017-04-08 09:24:13
【问题描述】:
我正在开发一个使用 jenkins 进行 ci 的项目。我必须验证 Github PR 并更新多项检查。我正在使用 Github Pull Request Builder 插件。 1. 整理代码 2.运行单元测试 3. 代码覆盖率
我想在 github 上以不同的方式显示 3 个状态检查?尽管向 github 报告了 3 个构建状态,但 github 仅显示“1 个待定检查”或“1 个状态检查已成功完成”。
如果无法为该功能开发或编写脚本,我没有找到合适的解决方案。有没有任何插件或方法可以实现这一点。
我希望只使用一个 Jenkins 作业来实现这一点
我尝试编写 shell 脚本来更新 github 中的检查 它响应成功消息,但 PR 没有更新状态。
curl -XPOST -H "Authorization: token XXXXXXXXXXXXXXXXXXXXXXXXXXXX" https://api.github.com/repos/org/reponame/statuses/$(git rev-parse HEAD) -d '{
"state": "success",
"target_url": "${BUILD_URL}",
"description": "All tests were passed!",
"context": "jenkins-ci-unit-test"
}'
回应
% Total % Received % Xferd Average Speed Time Time Time Current
05:15:26 Dload Upload Total Spent Left Speed
05:15:26
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 1528 100 1350 100 178 8318 1096 --:--:-- --:--:-- --:--:-- 8333
05:15:26 {
05:15:26 "url": "https://api.github.com/repos/org/reponame/statuses/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
05:15:26 "id": 333333333,
05:15:26 "state": "success",
05:15:26 "description": "All tests were passed!",
05:15:26 "target_url": "http://xxx.xxxxx.com/job/job1",
05:15:26 "context": "jenkins-ci-unit-test",
05:15:26 "created_at": "2016-11-29T10:15:26Z",
05:15:26 "updated_at": "2016-11-29T10:15:26Z",
05:15:26 "creator": {
05:15:26 .......
05:15:26 }
05:15:26 }
【问题讨论】:
-
我不太清楚你想在这里实现什么。您能否提供一张您当前的拉取请求状态检查的屏幕截图?
-
共享工作空间的三个作业会更容易。您可以编写一个脚本,通过 cURL 在每次检查后返回三个状态检查。只是使上下文不同。 developer.github.com/v3/repos/statuses/#create-a-status
标签: unit-testing github jenkins github-api pull-request