如何为jenkins工作需要两个或多个标签?

问题描述:

我不知道Jenkins是如何在“标签表达”字段中只允许单个值的,名为“限制可以运行这个项目的地方”的选项。如何为jenkins工作需要两个或多个标签?

我试过很多的组合,以添加多个标签,我无法找到任何方式把两项。

我需要提及的是,我需要在这些标签之间进行AND操作。

具有讽刺意味的是,这个选项甚至有它加载一些文档,这是缺少说一个表达式应该如何看起来像一个Info按钮。詹金斯UX棺材中的另一个小钉子。在这一个上Google都没有提供帮助。

+0

这看起来像一个错误。我在“标签表达”的帮助中看到了@ogondza引用的文字,但我在Jenkins 1.609.1的作业配置中看不到这个帮助。 –

+0

是的,这是一个错误。我已经更新了我的答案。 –

有一个詹金斯bug导致帮助文本不被显示。自1.585以来一直存在,自1.621(或1.609.3)以来一直保持不变。

这里是帮助文本:

如果你想始终运行在一个特定节点/从这个项目中,只指定其名称。当你有少量的节点时,这很有效。

随着集群规模的增长,它不以配合项目的具体奴隶,因为它伤害了资源利用率,当奴隶来来去去,变得非常有用。对于这种情况,将标签分配给从服务器以对其功能和特性进行分类,并在这些标签上指定一个布尔表达式来决定运行的位置。

有效运算

以下运算符被支持,在优先顺序。

(表达式)括号

!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"

+0

你使用的是什么版本?这个帮助文本已经存在了一段时间,但我没有在1.609.1(LTS)中看到它。 –

+0

具体例子呢? –