当前位置: 首页 > 知识库问答 >
问题:

Jenkinsfile检查构建是否由推送或合并请求触发

董康平
2023-03-14

现在我已经配置了 jenkins gitlab 连接和 gitlab webhook 来触发 jenkins 作业。

我想创建Jenkinsfile,其中一些任务仅在推送触发构建时执行,而另一些任务仅当合并请求触发构建时才执行。我使用管道作业。有可能吗?

BUILD_CAUSE变量不显示任何内容。

谢谢

共有3个答案

端木阳荣
2023-03-14

看看Jenkins的内置函数。您可能正在查找变更请求

如果当前构建版本用于“更改请求”(也称为拉取请求),则执行该阶段

阎涵容
2023-03-14

如果您使用的是gitlab jenkins插件,则可以检查env变量gitlabMergeRequestId是否未设置。

翟理
2023-03-14

我认为这是不可能的。您最好的选择是编写两个单独的作业。1在推送事件上触发,其他仅在合并请求上触发。您可以做的另一件事是编写一个单独的网络钩子,根据推送/合并事件发送不同的参数,并使用条件BuildStepplugin配置您的jenkins作业。

 类似资料:
  • 问题内容: 到目前为止,触发Jenkins构建工作可以创建新的请求请求,推动更改并留下评论,例如,当我在GitHub中点击绿色的“合并请求请求”按钮时,我看不到Jenkins中正在运行任何作业。 我的工作设置 参考规格: 分支说明符:或 参考了[GitHub pull request builder插件文档] [1]。 詹金斯原木 GITHUB Web日志 日志1) 请求 有效负载 日志2) 请求

  • 问题内容: 我有一个附加到事件的处理程序,我希望它仅在由人触发而不是由trigger()方法触发时执行。我该如何区分? 例如, 问题答案: 您可以检查:如果已定义,则点击是人为的: 我在jsfiddle中的例子:

  • 问题内容: 我有一个管道脚本,可以使用和不使用参数。因此,我必须检查该参数是否可用。 我试过了,但这导致异常 还有另一种检查作业是否已参数化的方法吗? 问题答案: 较新的版本通过变量使参数可用。如果未定义该参数,则它将回退到配置的默认值(另请参见此处)。

  • 我怎么能在声明性的jenkinsfile中做到这一点,我看到了如何为推送事件而不是评论执行此操作。 我在gitlab文档中找不到任何内容。https://github.com/jenkinsci/gitlab-plugin#job-trigger-configuration

  • 问题内容: 有没有一种方法可以检查nodestore的firestore中是否存在子集合? 目前,我正在使用文档,但是我需要检查文档中是否存在子类以便写入一些数据。 问题答案: 就在这里。您可以使用docs.length来知道子集合是否存在。 我制作了一个样本来指导您,希望对您有所帮助。

  • 本文向大家介绍php检查是否是ajax请求的方法,包括了php检查是否是ajax请求的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php检查是否是ajax请求的方法。分享给大家供大家参考。具体如下: 通过这段代码可以判断用户的请求是否来自AJAX XMLHttpRequest,以区别普通post,get和ajax 希望本文所述对大家的php程序设计有所帮助。