詹金斯管道何时关闭拉取请求的条件

Wil*_*oes 7 pull-request jenkins jenkins-pipeline

我需要一些帮助来检测多分支管道中的 PR 事件,我在谷歌上搜索了很多,但我找不到任何东西。我一直在尝试触发一个已结束的公关活动的构建。这与触发合并到的分支不同。

我有这些条件,运行良好

when {
  branch "master"
}
Run Code Online (Sandbox Code Playgroud)

或者

when {
  changeRequest()
}
Run Code Online (Sandbox Code Playgroud)

但我缺少类似的东西:

when {
  changeRequest(status = "merged")  // or "closed"
}
Run Code Online (Sandbox Code Playgroud)

知道如何做到这一点吗?我的目标是对预览环境进行一些清理,为此我需要知道 PR ID。

我正在使用 bitbucket post webhook,在 Jenkins 中我使用“Bitbucket Branch Source Plugin”。我知道“事件”正在发送到 Jenkins,因为它已在 Webhook 中检查。有什么建议么?

问候!

小智 1

我和你有同样的效用,这就是我们所做的。

您可能有一个多分支管道来部署 PR 环境,并且配置为检测新 PR 并在合并 PR 时删除作业。

在这种情况下,我们使用“多分支操作触发器”插件,如果其中一个作业被删除,它允许我们运行另一个作业。

当创建或删除管道作业时,或者当多分支管道作业删除运行(也称为构建)时,此插件允许构建/触发其他作业。

因此,当我们合并 PR 时,该作业会在多分支管道中消失,如果它消失,则会触发另一个作业,从而破坏环境。

正如您在图片中看到的,我们将其配置为在合并 PR 时运行两个作业:delete_docker_images_for_branch 和 destroy_environment。