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

vuv7lop3  于 2023-04-05  发布在  Jenkins
关注(0)|答案(2)|浏览(182)

我试图设置一个场景,在github上创建一个pull请求,触发一个Jenkins多分支管道,该多分支管道使用Generic Webhook插件从github发送到jenkins的POST请求中提取值,以用于脚本。
不幸的是,正如Generic Webhook Trigger Plugin wiki上所描述的:
注意:当从管道配置时,该管道需要运行一次,以应用插件触发器配置,然后此插件将能够触发作业。这是Jenkins的工作方式,而不是在此插件中实现的东西。您可以通过使用Job DSL来避免这种情况,并让Job DSL使用该DSL中配置的插件创建管道作业。
使用普通的管道是可以的,因为它只是Jenkins作业的一次性创建。然而问题是,每当创建一个新的分支/PR时,多分支管道将创建一个新的作业,这意味着对于我在github上创建的每个pull请求(这会触发我的多分支管道脚本),然后我必须运行两次才能让通用的webhook功能正常工作。对于长期运行的项目来说,必须为每个PR重新提交将是乏味的。
在我看来,有两种可能的方法来解决/改进这个问题,一种是尝试使用DSL Jobs(如wiki所建议的);但是我尝试了这个方法,但是不能让它工作(它给设置增加了大量的复杂性,所以我现在放弃了它)。
第二种可能的解决方案如下:当在github中创建PR时,Generic Webhook会导致在该PR对应的多分支管道中创建新的作业;多分支管道第一次运行时,此新创建作业的第一次构建将失败,原因在上面的引用中给出;但解决方案可能涉及测试第一个作业失败,并以某种方式告诉Jenkins再次尝试重建该作业。
因此,我的问题与第二种方法有关:在github上创建PR后,我如何最简洁地运行这个多分支管道的重建?
任何意见/建议将不胜感激!

alen0pnh

alen0pnh1#

要通过webhook触发多分支流水线,您可以使用以下插件:

“多分支扫描Webhook触发器”https://plugins.jenkins.io/multibranch-scan-webhook-trigger/

rqmkfv5c

rqmkfv5c2#

实际上对于多分支管道并不是这样的。只是普通的管道需要运行两次。
我更新了文档如下:
当从管道(不是多分支管道)配置时...

相关问题