【问题标题】:Add more PR status check (Jenkins blue ocean, integrated with github)添加更多 PR 状态检查(Jenkins 蓝海,与 github 集成)
【发布时间】:2019-03-12 18:36:38
【问题描述】:

我正在安装 Jenkins(带有 blue ocean 插件)并成功配置了 GitHub webhook,这样每次推送到存储库时都会检查构建过程是否成功(就像这个附加的图像)。

安装后会默认安装2个状态检查

  • jenkins/branch:检查是否可以成功构建提交并将状态报告回 GitHub
  • jenkins/pr-merge:检查 PR 是否可以与基础分支合并(目前正在开发)并将状态报告回 GitHub

我想再添加 1 个状态检查,例如 Jenkins/unit-test。我怎么能从詹金斯方面做到这一点?上面提到的 Jenkins with blue ocean plugin 中定义的 2 个状态检查在哪里?

我想添加更多状态检查的原因是我可以将此检查配置为可选,因此即使单元测试失败,我仍然可以合并拉取请求。 (我们的项目还处于非常早期的开发阶段,所以暂时不需要所有单元测试都通过来合并一个PR。)

【问题讨论】:

  • “没有必要要求所有单元测试都通过” - 我强烈建议您重新考虑这一点。这是一个滑坡,永远不会通过所有测试,并且您关心的故障信号会在您不关心的故障噪音中消失。
  • @jonrsharpe 非常感谢您的建议。即使在这种情况下,所有测试都需要通过,我仍然想知道是否有办法向当前管道添加自定义状态检查。

标签: jenkins github continuous-integration


【解决方案1】:

上面提到的 Jenkins with blue ocean plugin 中定义的 2 个状态检查在哪里?

这是插件的默认行为。

我怎么能从詹金斯方面做到这一点?

有几个选项可以实现此目的,但最终您需要使用GitHub Status API 自己创建新状态。这是一个简单的 REST 调用,它在状态列表上创建一个新条目,无论您传递什么结果。现在就如何从 Jenkins 执行此操作而言,我建议在您的 Jenkins 文件中添加一个 API 调用并隔离构建的 unit test 部分,并根据该命令的输出传递或失败结果。

我会查看Jenkins Shared Libraries,看看是否有一些例程已经为您完成了工作,在这种情况下,您将寻找一种封装 API 调用的方法。

【讨论】:

  • 谢谢。我一定会看看你的建议。由于 GitHub Status API 看起来很简单,我将尝试创建一个批处理文件,在运行单元测试后更新提交状态(例如)。
猜你喜欢
  • 2014-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 2021-05-26
相关资源
最近更新 更多