我希望将所有已定义的节点标签作为下拉列表,以便可以选择一个作为参数传递给构建。然后在构建中,我将遍历该标签中的所有主机。
答案 0 :(得分:0)
与您要寻找的功能类似的是NodeLabel Parameter Plugin。您可以使用多节点选择或使用标签,但是不确定是否可以对标签使用下拉菜单(据我了解,下拉菜单只能用于节点)。
答案 1 :(得分:0)
这就是我终于解决的答案
使用“可扩展选择参数”作为参数(如果需要,请安装插件)
选择提供者:“系统Groovy选择参数”
不要在沙盒中运行
这是Groovy代码
import jenkins.model.*
def labelAndNodeList = []
for (label in Jenkins.getInstance().getLabels()) {
labelAndNodeList.add(label)
}
return labelAndNodeList
再对此进行扩展...也许您已经将参数称为“标签”
现在您要遍历在管道中分配了该标签的节点
这是管道代码
def label = "${params.Label}"
listOfNodeNames = jenkins.model.Jenkins.instance.nodes.collect {
node -> node.getLabelString().contains(label) ? node.name : null
}
listOfNodeNames.removeAll(Collections.singleton(null))
for (node_to_run_on in listOfNodeNames) {
println "Node: ${node_to_run_on}"
node ("${node_to_run_on}") {
stage("Uname on ${node_to_run_on}") {
sh ("uname -a")
}
}
}