2017-04-24 50 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 /主/ ...更多細節)