在管理多个作业的管道作业的Groovy代码中,是否可以读取在另一个作业的配置中定义的参数的默认值?
也就是说,在管道作业A中,我想读取作业B中参数P的默认值,该值尚未安排。(这将影响在作业A中构造B的请求的方式。)
def val = "some-random-prefix" + ReadJobParamDefault(job: 'B', parameter: 'paramName') + "-some-random-suffix" def b = build(job: 'B', description: 'Some text', parameters: [[$class: 'StringParameterValue', name: 'paramName', value: val]])
ReadJobParamDefault是否真正有用?
我想可能可以将某些Groovy类存储到共享库(https://jenkins.io/doc/book/pipeline/shared- libraries/)中,例如
public static String ReadJobParamDefault(jobName, String parameter) { def job = Hudson.instance.getJob(jobName) String ret = null; if (job != null && parameter != null && parameter.trim().length() > 0) { job.getProperties().values().each { if(it instanceof hudson.model.ParametersDefinitionProperty) { if (it.getParameterDefinition(parameter) != null) { ret = it.getParameterDefinition(parameter). getDefaultParameterValue().getValue(); } } } } return ret; }