How to allocate an executor on a node but never master

How to allocate an executor on a node but never master

You can use node(‘!master’) or agent { label ‘!master’ } syntax.

https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#node-allocate-node

node: Allocate node

Allocates an executor on a node (typically a slave) and runs further code in the context of a workspace on that slave.

  • label

Computer name, label name, or any other label expression like linux && 64bit to restrict where this step builds. May be left blank, in which case any available executor is taken.

Supported operators

The following operators are supported, in descending order of precedence:

(expression)

parentheses — used to explicitly define the associativity of an expression

!expression

NOT — negation; the result of expression must not be true

a && b

AND — both of the expressions a and b must be true

a || b

OR — either of the expressions a or b may be true

a -> b

“implies” operator — equivalent to !a || b.
For example, windows -> x64 could be thought of as “if a Windows agent is used, then that agent must be 64-bit”, while still allowing this block to be executed on any agents that do not have the windows label, regardless of whether they have also have an x64 label

a <-> b

“if and only if” operator — equivalent to a && b || !a && !b
For example, windows <-> dc2 could be thought of as “if a Windows agent is used, then that agent must be in datacenter 2, but if a non-Windows agent is used, then it must not be in datacenter 2”

Notes

  • All operators are left-associative, i.e. a -> b -> c is equivalent to (a -> b) -> c.
  • Labels or agent names can be surrounded with quotation marks if they contain characters that would conflict with the operator syntax.
    For example, “osx (10.11)” || “Windows Server”.
  • Expressions can be written without whitespace, but including it is recommended for readability; Jenkins will ignore whitespace when evaluating expressions.
  • Matching labels or agent names with wildcards or regular expressions is not supported.
  • An empty expression will always evaluate to true, matching all agents.
    Examples

master

This block may be executed only on the Jenkins master

linux-machine-42

This block may be executed only on the agent with the name linux-machine-42 (or on any machine that happens to have a label called linux-machine-42)

windows && jdk9

This block may be executed only on any Windows agent that has version 9 of the Java Development Kit installed (assuming that agents with JDK 9 installed have been given a jdk9 label)

postgres && !vm && (linux || freebsd)

This block may be executed only any on Linux or FreeBSD agent, so long as they are not a virtual machine, and they have PostgreSQL installed (assuming that each agent has the appropriate labels — in particular, each agent running in a virtual machine must have the vm label in order for this example to work as expected)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值