在Jenkins管道中设置节点标签

Rod*_*ble 8 groovy jenkins jenkins-pipeline

是否可以为节点Groovy设置标签而不是名称?我们希望在脚本外部定义标签,以便从Jenkins仪表板轻松访问它们.

想法:而不是:


Groovy脚本

node('Slave_1 || Slave_2'){ echo 'Hello world' }
Run Code Online (Sandbox Code Playgroud)

我们想要这样的东西:


管道配置

Node Label Name:     slaveGroup
Node Label Value:    Slave_1 || Slave_2
Run Code Online (Sandbox Code Playgroud)

Groovy脚本

node(slaveGroup){echo 'Hello world'}
Run Code Online (Sandbox Code Playgroud)

或者是否可以直接在Groovy脚本中使用您可以在从属配置中设置的标签?

Rod*_*ble 7

刚刚发现Pipline语法(生成器)提供了这个选项:

有效的运算符

按优先顺序支持以下运算符.

(表达式)

插入语

!EXPR

否定

EXPR && EXPR

EXPR || EXPR

要么

a - > b

"暗示"操作员.相当于!a | b.例如,windows-> x64可以被认为是"如果在Windows奴隶上运行,那个奴隶必须是64位".它仍然允许Jenkins在linux上运行此构建.

a < - > b

"当且仅当"运营商.相当于&& b || !一个&&!湾 例如,windows < - > sfbay可以被认为是"如果在Windows奴隶上运行,那个奴隶必须在SF湾区域,但如果不在Windows上,它必须不在湾区."

所有运算符都是左关联的(即,a-> b-> c < - >(a-> b) - > c)表达式可以包含空格以提高可读性,并且它将被忽略.

如果标签名称或从属名称包含不安全的字符,则可以引用它们.例如,"jenkins-solaris(Solaris)"|| "Windows 2008"

更多文档.