从Bitbucket触发Jenkins作业以处理Pull Request

9
希望从专业人士那里获得见解。我的最终目标是在Bitbucket发生拉取请求时触发Jenkins构建。如果有人能给我一个ELI5(像我五岁一样解释)的答案,那将不胜感激。如果这种格式不正确,请谅解,我对Jenkins和StackOverflow都很陌生。
我已经完成的工作:
  1. 在Bitbucket中创建Webhook并将URL提供给我的Jenkins作业。例如:http://jenkinsURL:8080/job/boulevard-dev/generic-webhook-trigger/invoke?token=myPull_Request_Token

  2. 拉取请求Webhook触发器

  3. 在Jenkins中,源代码管理下有:源代码管理设置。目前正在获取大量分支,失败后在作业启动时构建主分支?

  4. 对于构建触发器,其他stackoverflow文章指向了“通用Webhook触发器”。https://github.com/jenkinsci/generic-webhook-trigger-plugin

  5. 我不太确定这个通用Webhook触发器应该如何有效地设置?希望有经验的人能解释需要什么。

  6. 这是其他文章中提到的内容。构建触发器设置 构建触发器设置2

问题:

  • 泛型 Webhook 触发器的正确设置/示例是什么样的?
  • 目前,我的作业在 master 分支更改或合并到 master 时触发,如何指定我的作业要构建 Bitbucket 拉取请求分支?
  • 此外,我找到了这个链接,不确定它是否与我的问题有关? https://jira.atlassian.com/browse/BCLOUD-5814

这个问题不是关于编码问题的,但很可能会在devops.stackexchange.com上得到良好的回应。 - guido
也许我回答这个问题有点晚了,但你可以在这里查看(https://plugins.jenkins.io/bitbucket-push-and-pull-request/),看看它是否适合你。 - DroidDev
1个回答

9
根据您的要求,按照以下步骤触发Jenkins构建每当Bitbucket提出拉取请求时,在我的情况下,它可以正常工作。
步骤(1)- 配置Jenkins (i) 将您的BitBucket存储库和分支添加到源代码管理中 enter image description here (ii) 在构建触发器上设置Poll SCM为* * * * * 每分钟运行一次以检查来自BitBucket的拉取请求。enter image description here 步骤(2)- 配置BitBucket Hook (i) 转到设置并添加一个新钩子,现在根据您的要求设置拉取请求触发器。 enter image description here

步骤(3)- 提交拉取请求并查看 Jenkins 上自动触发的新作业。 在此输入图片描述


2
Rahul,是否有可能只在创建拉取请求时构建拉取请求分支?我看到在这个例子中,似乎 Jenkins 只会构建主分支。 - Showler
1
@Showler,您可以在Jenkins配置中添加任何分支。转到源代码管理,在“要构建的分支”选项中,将您的分支名称输入到*/master的位置。 - Rahul Gaikwad
@Showler 你可以使用正则表达式来排除 master 分支,请参考 https://dev59.com/q2Qn5IYBdhLWcg3wCjX0#18709097 - Davos
1
@RahulGaikwad 看起来你的配置是仅在合并后构建,这不需要在BB中使用webhook,只需使用Jenkins轮询SCM即可。请确认构建是否也在PR创建或PR更新时运行。 - Vinay Taneja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接