我基本上想要根据从节点参数选择来驱动一组选择参数。我尝试使用主动选择反应式插件指向节点选择,如下所示:
if (Node.contains("name_of_slave_node")) {
return ["you_chose_slave_node"]
} else {
return ["master"]
}
我所做的一切似乎都无法奏效。我可以使用这种类型的逻辑并指向任何其他类型的参数,它可以工作。我只是有点难过这个去哪里。它可能是插件的限制,或者我错过了groovy如何解决节点参数的问题。我真的很感激任何建议。
答案 0 :(得分:0)
很难了解插件的工作原理。即使是现在,我仍然对用户应用插件的所有情况以及他们使用插件的不同方式感到惊讶。
你绝对可以做你想做的事。该插件执行Groovy脚本,该脚本必须返回一个数组,其中包含要在UI上显示的值。您还有一些辅助变量,插件尝试可供您使用。其中一个变量是 jenkinsProject 。
如果在项目中分配了标签,则可以通过编程方式根据分配给项目的节点标签(或节点对象...)返回值。
这是一个非常简单的例子。
assignedNode = jenkinsProject.getAssignedLabelString()
list = []
if (assignedNode == null) {
// do something
} else if (assignedNode.equals('abc')) {
// ...
}
return list
此处 assignedNode 将具有该节点的字符串名称,如果没有,则为null。如果您使用 jenkinsProject.getAssignedLabel(),那么您将没有String,而是Label。
如果您需要进一步定制,最好的方法是深入了解Java API,然后自下而上构建您的Groovy脚本。或者尝试在线查找示例(Jenkins和Groovy有很多例子)并根据您的参数调整它们。
希望有所帮助, 布鲁诺