简介:
我们目前正在运行一个Jenkins主节点和多个从节点,每个节点目前都有一个标签(例如,linux
,windows
,.)
在我们的脚本管道脚本(在shared library中定义)中,我们目前使用如下代码段:
node ("linux") {
// do something on a linux node
}
字符串
或
node ("windows") {
// do something on a windows node
}
型
然而,随着我们的测试环境的增长,我们现在有多个不同的Linux环境,其中一些具有或不具有某些功能(例如,一些可能能够运行服务X
,而另一些可能不能)。
我现在想用多个标签来标记我的奴隶,指示他们的能力,例如:
- 从机1:
linux
、serviceX
、serviceY
- 从机2:
linux
、serviceX
、serviceZ
如果我现在需要一个能够运行服务X
的Linux slave,我想做以下事情(根据这个):
node ("linux" && "serviceX") {
// do something on a linux node that is able to run service X
}
型
然而,这失败了。有时,也会选择一个windows
从机,这不是我想要实现的。
**问题:**我如何定义多个标签(和组合),基于Jenkins脚本的Pipepline脚本中选择的节点?
1条答案
按热度按时间nx7onnlm1#
&&
必须是字符串的一部分,而不是逻辑Groovy操作符。