繁体   English   中英

如何让通用 Webhook 触发器插件与 Jenkins 中的多分支管道一起使用?

[英]How to get the Generic Webhook Trigger Plugin to work with multibranch pipelines in Jenkins?

我正在尝试设置一个场景,在 github 上创建一个 pull request 来触发 Jenkins 多分支管道,并且该多分支管道使用通用 Webhook 插件从从 github 发送到 jenkins 的 POST 请求中提取值以用于剧本。

不幸的是,如Generic Webhook Trigger Plugin wiki 所述:

注意:从管道配置时,该管道需要运行一次,以应用插件触发器配置,然后该插件将能够触发作业。 这就是 Jenkins 的工作方式,而不是在这个插件中实现的东西。 您可以通过使用 Job DSL 来避免这种情况,并让 Job DSL 使用在该 DSL 中配置的插件创建管道作业。

使用普通管道就可以了,因为它只是创建 Jenkins 作业的一次性完成。 然而,问题是多分支管道将在创建新分支/PR 时创建新作业,这意味着对于我在 github 上创建的每个拉取请求(触发我的多分支管道脚本),我必须然后运行它两次使通用的 webhook 功能正常工作。 对于长期项目而言,必须为每个 PR 重新提交将是乏味的。

在我看来,有两种可能的方法可以解决/改进这个问题。 一种是尝试使用 DSL Jobs(如 wiki 所建议的); 但是我尝试了这个并且无法让它工作(它给设置增加了大量的复杂性,所以我现在放弃了它)。

第二种可能的解决方案如下:当在 github 中创建 PR 时,Generic Webhook 会导致在该 PR 对应的多分支管道中创建一个新作业; 由于上面引用中给出的原因,多分支管道第一次运行这个新创建的作业的第一个构建将失败; 但随后的解决方案可能涉及测试第一个工作失败并以某种方式告诉 Jenkins 再次尝试为该工作重建。

所以我的问题与第二种方法有关:在 github 上创建 PR 时,我如何才能最巧妙地运行此多分支管道的重建?

任何意见/建议将不胜感激!

要通过 webhook 触发多分支管道,您可以使用此插件:
“多分支扫描 Webhook 触发器” https://plugins.jenkins.io/multibranch-scan-webhook-trigger/

实际上,多分支管道并非如此 只是普通的管道需要运行两次。

我更新了文档,如:

从管道(不是多分支管道)配置时...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM