2013-09-25 29 views
4

當嘗試使用Groovy查詢構建,我叫我如何發現Jenkins構建的其他原因?

myBuild.getCauses() 

我可以在詹金斯(編譯屏幕),這個構建有兩個原因,一個UserIdCause和UpstreamCause的界面中看到。然而,當我用上面的groovy詢問相同的構建時,我只返回一個單一的原因,即UserIdCause。必須有一些從構建中獲取UpstreamCause的方法,否則它不會出現在用戶界面中。

我正在使用Build Pipeline插件手動觸發構建。

+0

我已經知道了「運行」中的getActions()方法爲您提供了另一個角度。當我的時限到期時,我會發布更完整的問題答案。 –

+0

將很高興發佈JSON/XML中的示例原因 –

回答

1

這裏是工作的Groovy代碼(我試過在詹金斯的腳本控制檯)使用build.getAction

job = hudson.model.Hudson.instance.getItem("demo-job") 
build = job.getLastBuild() 

// get action first 
def action = build.getAction(hudson.model.CauseAction.class) 
// get the list of causes 
for (cause in action.getCauses()) { 
    println cause.getShortDescription() 
} 
// another way to find specific UpsteamCause directly 
cause = action.findCause(hudson.model.Cause.UpstreamCause.class) 
println cause.getUpstreamRun() 

見參考文獻

  1. 看到建立流水線,插件如何在代碼BuildPipelineView.java
  2. 添加事業
  3. 看到hudson.model.Cause API
相關問題