我的Jenkins文件中有一些参数如下:
properties(
[parameters([
[$class: 'ValidatingStringParameterDefinition',
defaultValue: '',
description: 'regex param',
failedValidationMessage: '',
name: 'VSTRING',
regex: '.+'
],
[$class: 'StringParameterDefinition',
defaultValue: 'some string',
description: 'string param',
name: 'STRING',
trim: false
],
[$class: 'ChoiceParameterDefinition',
name: 'CHOICE',
choices: 'a\nb\nc',
description: 'coice param'
]
])]
)
我不想在Jenkins文件中定义那些参数,而是想从外部加载它。例如,通过解析JSON文件,我在其中定义参数。
我知道如何创建一个JSON对象(使用shared libraries
加载json文件和一个groovy脚本来将内容解析为json对象),所以我可以这样做:
def jsonString = libraryResource 'params.json'
def myParams = jsonParse(jsonString)
我想做这样的事情:
properties(
[parameters([
myParams
])]
)
许多不同的尝试失败了。实际上,我不知道我的params.json的语法应该是什么样的 - 或者这是否适用。
希望您有一些想法如何从Jenkins文件外部加载我的参数定义。
答案 0 :(得分:0)
我是通过以下方式做到的:
我没有创建json文件,而是在may vars
文件夹中创建了一个共享库,内容为:
// vars/myParamsLib.groovy
def call(){
def params = []
params.add([$class: 'ValidatingStringParameterDefinition',
defaultValue: '',
description: 'regex param',
failedValidationMessage: '',
name: 'VSTRING',
regex: '.+'
])
// params.add(...)
return params
}
我的詹金斯文件:
properties([parameters(myParamsLib)])