我有一个使用Perforce插件的参数化作业,并希望检索构建参数/属性以及Perforce插件设置的p4.change属性.
如何使用Jenkins Groovy API检索这些属性?
Pat*_* M. 25
请注意官方Jenkins Wiki页面还详细介绍了这一点: https ://wiki.jenkins-ci.org/display/JENKINS/Parameterized+System+Groovy+script重要部分如下:
// get parameters
def parameters = build?.actions.find{ it instanceof ParametersAction }?.parameters
parameters.each {
println "parameter ${it.name}:"
println it.dump()
}
// ... or if you want the parameter by name ...
def hardcoded_param = "FOOBAR"
def resolver = build.buildVariableResolver
def hardcoded_param_value = resolver.resolve(hardcoded_param)
Run Code Online (Sandbox Code Playgroud)
ing*_*ger 24
为了解决单个参数(我想最常需要的),这是我发现的最简单的:
build.buildVariableResolver.resolve( "myparameter")
在Groovy System脚本构建步骤中.
mal*_*cot 17
关于参数:
请先查看此答案.获取项目的所有构建的列表(根据该答案获得):
project.builds
Run Code Online (Sandbox Code Playgroud)
当你发现你特别的身材,你需要得到类型的所有行动ParametersAction用build.getActions(hudson.model.ParametersAction)
.然后,您可以在返回的对象中查询特定参数.
关于p4.change:我怀疑它也存储为一个动作.在Jenkins Groovy控制台中获取包含p4.change的构建的所有操作并检查它们 - 它将让您知道在代码中要查找的内容.
小智 10
我刚刚使用了Groovy Postbuild插件,你可以做到以下几点:
def paramText
def actionList = manager.build.getActions(hudson.model.ParametersAction)
if (actionList.size() != 0)
{
def pA = actionList.get(0)
paramText = pA.createVariableResolver(manager.build).resolve("MY_PARAM_NAME")
}
Run Code Online (Sandbox Code Playgroud)
如果参数名称不能硬编码,我发现这将是访问参数的最简单和最好的方法:
def myParam = env.getProperty(dynamicParamName)
Run Code Online (Sandbox Code Playgroud)
在某些情况下,当参数名称已知并且可以硬编码时,以下 3 行是等效的:
def myParam = env.getProperty("myParamName")
def myParam = env.myParamName
def myParam = myParamName
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
89079 次 |
最近记录: |