2015-10-31 48 views
4

我知道你可以直接在Jenkins工作流中訪問構建參數。我有一個名爲BRANCH_REVISION的參數,我需要更新,以便對xml api的調用將顯示新值而不是原始值。這是我在使用下面的常規片斷非工作流腳本做:如何在Jenkins工作流中編輯生成參數?

def currentParamActions = build.getAction(ParametersAction.class) 
def currentParams = currentParamActions.getParameters() 

currentParams.each() { 
    if (it.name.equals("BRANCH_REVISION")) { 
     newParams.add(new StringParameterValue("BRANCH_REVISION", newRevision)) 
    } 
    else { 
     newParams.add(it) 
    } 
} 

build.actions.remove(currentParamActions) 
new_param_actions = currentParamActions.createUpdated(newParams) 
build.actions.add(new_param_actions) 

然而,顯然由於構建物體是無法訪問的,這並不在工作流工作。預先感謝任何幫助!

回答

4

參見<工作流作業配置> → 工作流片段發生器→ 全局變量 →變量:currentBuild

currentBuild變量可被用於指當前正在運行的建立。這是一個類似於build步驟返回值所記錄的對象。根據org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper這是currentBuild類型

使用currentBuild.build(),而不是build中的代碼在你的問題。

+0

感謝您的回覆。我查看了currentBuild變量,但我一直無法弄清楚如何使用它來覆蓋現有參數的值。你有沒有更深入的瞭解? – Josh

+0

@Josh我建議嘗試用'currentBuild'在你的問題的代碼中替換'build'。 –

+0

不幸的是,據我所知,currentBuild沒有大部分可用於構建的方法,包括對設置操作的任何訪問。 – Josh

相關問題