【问题标题】:Getting Multiples checks for Github Pull Request using Jenkins使用 Jenkins 对 Github Pull Request 进行多次检查
【发布时间】: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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    尝试使用

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

    而不是

    git rev-parse HEAD
    

    所以它取之前的提交值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 2019-05-04
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多