2015-11-03 61 views
0

我想寫一個腳本,將獲得由另一個工作觸發的生成的內部版本號。例如: 我有一個構建作業調用兩個其他作業(調用/觸發器構建其他項目)。當主要工作成功完成時,我想獲得從內部觸發的第一個構建作業的編號。我試圖運行的腳本創建了主要工作,但是我無法以任何方式獲得觸發作業的內部版本號。詹金斯groovy腳本得到觸發內部編號

def job = jenkins.model.Jenkins.instance.getItem("Hourly") 
job.builds.each { 
def build = it 
if (it.getResult().toString().equals("SUCCESS")) {The rest of the code should go here!} 

我正試圖在Jenkins java-doc API和在線中找到它,但是沒有任何運氣。有人可以幫我嗎?

P.S.腳本在作業完成後運行(僅在需要時觸發)。

回答

0

您可以從構建日誌(父作業)解析構建編號(子作業)。例如:

j = Jenkins.getInstance(); 
jobName = "parentJobName"; 
job = j.getItem(jobName); 
bld = job.getBuildByNumber(parentBuildNumber); 

def buildLog = bld.getLog(10); //make sure you read enough lines 
def group = (buildLog =~ /#(\d+) of Job : childJobName with/); 
println("The triggered build number: ${group[0][1]}");