2015-10-31 3 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) 

Тем не менее, кажется, что это не работает в Workflow, так как объект сборки не доступен. Заранее благодарю за любую помощь!

ответ

4

См < Workflow Конфигурация работы > → WorkflowОтрывок Генератор → Глобальные переменные → Variable: currentBuild:

Переменная currentBuild может использоваться для обозначения в настоящее время работает строить. Это объект, аналогичный документу для возвращаемого значения этапа build.

Использование currentBuild.build() вместо build в коде в вашем вопросе согласно org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper который является типом currentBuild.

+0

Спасибо за ваш ответ. Я посмотрел на текущую переменную currentBuild, но мне не удалось выяснить, как ее использовать, чтобы перезаписать значение существующего параметра. У вас есть какое-то дальнейшее понимание этого? – Josh

+0

@Josh Предлагаю попробовать заменить 'build' в коде в вашем вопросе' currentBuild'. –

+0

К сожалению, насколько я могу судить, currentBuild не имеет большинства методов, доступных для сборки, включая любой доступ к настройкам. – Josh

Смежные вопросы