我不知道Jenkins的名为“限制此项目可以运行的地方”的选项似乎只允许“标签表达式”字段中的单个值。
为了添加多个标签,我尝试了很多组合,而且我找不到任何方法来放两个标签。
我需要提一下,我需要在这些标签之间使用AND。
具有讽刺意味的是,这个选项甚至还有一个Info按钮,可以加载一些文档,缺少表达式应该是什么样的文档。 Jenkins UX棺材中的另一个小钉子。在这一点上,谷歌都没有帮助。
答案 0 :(得分:9)
有一个Jenkins bug导致帮助文本无法显示。它自1.585开始存在并且自1.621(或分别为1.609.3)以来固定。
以下是帮助文本:
如果要始终在特定节点/从属服务器上运行此项目,只需指定其名称即可。当您拥有少量节点时,这种方法很有效。
随着集群规模的增长,不将项目绑定到特定的从设备变得有用,因为当从设备可能来来往往会损害资源利用率。对于这种情况,请为从属分配标签以对其功能和特征进行分类,并在这些标签上指定一个布尔表达式来决定运行的位置。
有效运算符
支持以下运算符,按优先顺序排列。
(expr)括号
!expr 否定
expr&& expr 和
expr || expr 或
a - > b “暗示”操作员。相当于
!a|b
。例如,windows->x64
可以被认为是“如果在Windows奴隶上运行,那么奴隶必须是64位”。它仍然允许Jenkins在linux上运行这个版本。a< - > b “当且仅当”运营商。相当于
a&&b || !a&&!b
。例如,windows<->sfbay
可以被认为是“如果在Windows从属设备上运行,则该从属设备必须位于SF托架区域,但如果不在Windows上,则它不能位于托架区域。”所有运算符都是左关联的(即
a->b->c <-> (a->b)->c
)表达式可以包含空格以提高可读性,并且它将被忽略。如果标签名称或从属名称包含不安全的字符,则可以引用它们。例如,
"jenkins-solaris (Solaris)" || "Windows 2008"