2015-07-12 279 views
4

我不知道Jenkins是如何在「標籤表達」字段中只允許單個值的,名爲「限制可以運行這個項目的地方」的選項。如何爲jenkins工作需要兩個或多個標籤?

我試過很多的組合,以添加多個標籤,我無法找到任何方式把兩項。

我需要提及的是,我需要在這些標籤之間進行AND操作。

具有諷刺意味的是,這個選項甚至有它加載一些文檔,這是缺少說一個表達式應該如何看起來像一個Info按鈕。詹金斯UX棺材中的另一個小釘子。在這一個上Google都沒有提供幫助。

+0

這看起來像一個錯誤。我在「標籤表達」的幫助中看到了@ogondza引用的文字,但我在Jenkins 1.609.1的作業配置中看不到這個幫助。 –

+0

是的,這是一個錯誤。我已經更新了我的答案。 –

回答

8

有一個詹金斯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

具體例子呢? –