使用Jenkins

时间:2016-11-24 07:23:02

标签: unit-testing github jenkins github-api pull-request

我正在开发一个使用jenkins作为ci的项目。我必须验证Github PR并更新多个检查。我正在使用Github Pull Request Builder插件。 1. linting代码 2.运行单元测试 3.代码覆盖率

我想以不同方式显示3种状态检查?尽管3个构建向github报告状态,但github只显示“1个待检查”或“1个状态检查已成功完成”。 enter image description here

如果没有能够开发或编写功能脚本,我找不到合适的解决方案。是否有任何插件或方法来实现这一点。

我希望只使用一个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 }

Current check in PR

2 个答案:

答案 0 :(得分:1)

尝试使用

git rev-list --max-count=2 HEAD | tail -n 1  

而不是

git rev-parse HEAD

因此它需要先前的提交值

答案 1 :(得分:1)

用于更新检查的提交哈希是错误的。它应该是PR的最后一次提交。您需要通过调用以下github API端点来获取正确的提交哈希 https://api.github.com/repos/orgname/reponame/pulls/prno