2017-06-16 51 views
1

我想從jenkins中的作業中獲得最後一次成功構建,以便當另一個條件滿足時,構建的詳細信息將傳遞給另一個工作。我嘗試使用Hudson的Run類,因爲它有方法獲得最後的成功構建,但我無法獲得它的編譯。由於我的所有構建都失敗了,現在我正在使用getPreviousFailedBuild(),但是它將在稍後成功構建時交換。目前,我有這樣的:如何從jenkins工作中使用哈德森類和groovy獲得最後的成功構建

import hudson.model.Run.* 

def lastFailedBuild = getPreviousFailedBuild() 

目前,當我嘗試運行我的腳本

Caught: groovy.lang.MissingMethodException: No signature of method: hudson7682146427918660061.getPreviousFailedBuild() is applicable for argument types:() values: [] at hudson7682146427918660061.run(hudson7682146427918660061.groovy:5)

我得到的錯誤與import語句,直到我加入.*最後我得到這個錯誤信息,我也嘗試調用這樣的方法: Run.getPreviousFailedBuild()但是,這會導致沒有這樣的屬性運行異常,而不是。

我需要什麼才能訪問我以前的版本哈德遜類,所以我可以發送我需要的信息。 )

回答

1

使用execute system groovy script

def lastSuccess = build.getProject().getLastSuccessfulBuild() 
+1

這個工作對我來說,除了我需要getLastSuccessfullBuild(代替,但謝謝你的幫助,不能做它沒有你 – cbald24

2
import jenkins.model.Jenkins 

def test_job = Jenkins.instance.getItemByFullName("My-Test-Dev") 

last_sucessful_build_number=test_job.getLastSuccessfulBuild().getNumber() 

println last_sucessful_build_number 
+0

也許它如果格式化的更好提出的代碼並添加任何解釋 – Kalamarico