说,我有2个Jenkins-Jobs(可能会得到更多)A和B。我不使用Jenkins版本2.138.2。
A有2个参数:
B还有两个参数:
我想要另一个作业C,它提供作业A和B中的所有参数;因此作业C应该动态提供3个参数。
有没有提供此功能的插件?还是有其他工作方式?
答案 0 :(得分:0)
我不知道这样的插件。但是你可以自己做。我建议创建一个global shared lib,然后定义一个方法 getMyParameters ,并使用文件 vars / getMyParameters.groovy 如下:
def call(Map config)
{
boolean isA = config["isA"]
boolean isB = config["isB"]
boolean isC = config["isC"]
def propertiesList = []
if(isA || isB || isC)
{
propertiesList << choice(choices: ['a', 'b', 'c'], description: 'my param_name1', name: 'param_name1')
}
if(isA || isC)
{
propertiesList << string(defaultValue: '-', description: 'my param_name2', name: 'param_name2', trim: false)
}
if(isB || isC)
{
propertiesList << string(defaultValue: '-', description: 'my param_name3', name: 'param_name2', trim: false)
}
return propertiesList
}
现在,您可以像下面这样重复使用Jenkinsfiles中的参数:
@Library('my-jenkins-shared-lib@master') _
properties([parameters(getMyParameters(isA: true, isB: false, isC: false))])
pipeline
{
agent none
stages
{
stage("JobA")
{
steps
{
echo 'Hello JobA'
}
}
}
}