说明:
我们目前正在运行一个带有多个从属节点的Jenkins主节点,每个节点当前都标有一个标签(例如linux
,windows
,...)
在我们的脚本管道脚本(在shared library中定义)中,我们目前使用如下代码片段:
node ("linux") {
// do something on a linux node
}
或
node ("windows") {
// do something on a windows node
}
然而,随着我们的测试环境的增长,我们现在拥有多个不同的Linux环境,其中一些具有或不具备某些功能(例如,某些可能能够运行服务X
而有些可能不运行)。
我想用多个标签标记我的奴隶,表明他们的能力,例如:
linux
,serviceX
,serviceY
linux
,serviceX
,serviceZ
如果我现在需要能够运行服务X
的Linux从服务器,我想执行以下操作(according to this):
node ("linux" && "serviceX") {
// do something on a linux node that is able to run service X
}
然而,这失败了。
有时候,windows
奴隶也会被选中,这不是我想要实现的。
问题:如何根据Jenkins脚本管道脚本中选择的节点定义多个标签(和组合)?
答案 0 :(得分:7)
&&
需要是字符串的一部分,而不是逻辑Groovy运算符。