小编典典

Jenkins Pipeline Groovy:是否从另一个作业中读取默认参数值?

jenkins

在管理多个作业的管道作业的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是否真正有用?


阅读 396

收藏
2020-07-25

共1个答案

小编典典

我想可能可以将某些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;
}
2020-07-25