如何在Jenkins管道的输入步骤中自动生成参数?

时间:2017-12-04 11:11:17

标签: jenkins groovy jenkins-pipeline

我想从Jenkins管道中的循环中的输入步骤动态生成我的参数。

这是我的代码:

var = input message: 'Tags a saisir', ok: 'Build!',
        parameters: [
                     choice(name: 'name1', choices: file1),
                     choice(name: 'name2', choices: file2),
                     choice(name: 'name3', choices: file3),
                     choice(name: 'name4', choices: file4)
]

我想知道是否可以从循环中生成每个参数,如:

for (int i = 0; i < myList.size(); i++) {
   theChoice = "choice(name : "+myList.get(i)+'choices: file"+i+")
}

并从这些行生成输入步骤。

这种方法可行吗?

主要目标是使用模块化变量生成一个输入步骤,该变量取决于Git SCM中的jenkins文件克隆

此致

纪尧姆

1 个答案:

答案 0 :(得分:0)

你可以这样做

def parameterNames = fileMap.keySet().toList()
def choices = []
for (int i = 0; i < parameterNames.size(); i++) {
   choices += choice(name : parameterNames[i], choices: fileMap[parameterNames[i]])
}

def var = input message: 'Tags a saisir', ok: 'Build!', parameters: choices

其中fileMapMap,其中包含每个参数名称前面的可能选项(键是参数名称,值是可能选择的String