我正在开发一个使用jenkins作为ci的项目。我必须验证Github PR并更新多个检查。我正在使用Github Pull Request Builder插件。 1. linting代码 2.运行单元测试 3.代码覆盖率
我想以不同方式显示3种状态检查?尽管3个构建向github报告状态,但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 }
答案 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