如何从JobDSL中访问特定的Jenkins作业参数?

时间:2018-02-15 17:19:58

标签: jenkins parameters jenkins-job-dsl

我的问题与How to access list of Jenkins job parameters from within a JobDSL script?

密切相关

有这样的差异:我如何访问DSL脚本中的一个特定参数?

我试图从上述问题的答案中找出答案,但无法弄清楚。

我们假设参数名为REPOSITORY_NAME。 我尝试使用接受的答案中的代码并执行类似

的操作
import hudson.model.*

Build build = Executor.currentExecutor().currentExecutable
ParametersAction parametersAction = build.getAction(ParametersAction)
def newname = parametersAction.parameters['REPOSITORY_NAME'].ParameterValue 

println newname

但我只有

  

错误:(脚本,第5行)异常评估属性' REPOSITORY_NAME' for java.util.Collections $ UnmodifiableRandomAccessList,Reason:groovy.lang.MissingPropertyException:没有这样的属性:REPOSITORY_NAME for class:hudson.model.StringParameterValue

我也试过

def newname = parametersAction.parameters.getParameter('REPOSITORY_NAME').ParameterValue

相反,但它给了我

  

错误:(脚本,第5行)没有方法签名:java.util.Collections $ UnmodifiableRandomAccessList.getParameter()适用于参数类型:(java.lang.String)值:[REPOSITORY_NAME]

我需要更改哪些才能使其正常工作?

1 个答案:

答案 0 :(得分:0)

Okey现在只是使用上述问题的第二个答案并且if-else like

def reponame = ''

binding.variables.each {
  println "${it.key} = ${it.value}"

  if(it.key == 'REPOSITORY_NAME'){
    reponame = it.value
  }
}

可能不是最有效的方式,但它有效。