2017-04-24 52 views
3

我希望添加一个有条件的阶段到我的Jenkinsfile,该Jenkinsfile根据生成的触发方式运行。目前,我们正在建立,从而建立由要么触发:如何区分詹金斯管道中的生成触发器

  1. 改变我们的git仓库被拾起分支索引
  2. 用户手动触发使用用户界面中的“现在建”按钮生成。

有没有什么办法可以运行不同的流水线步骤,具体取决于哪些操作触发了构建?

+1

[JENKINS-41272](https://issues.jenkins-ci.org/browse/JENKINS-41272)是关于在'currentBuild'全局变量中公开的。 – mkobit

回答

4

下面的代码应该工作,以确定用户是否已开始管道或定时器/其他触发:

def isStartedByUser = currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause) != null 
1

我们可以用“BUILD_CAUSE”用于获取有关谁发起了运行

的信息变量[詹金斯流水线]你可以使用

currentBuild.rawBuild.getCauses() 

(见github.com/jenkinsci/pipeline-例子/ BLOB /主/ ...更多细节)