如何检查 Jenkins node1 是否空闲,如果不检查节点 2 并触发 node2 上的构建?

How to check if Jenkins node1 is free for the job, if not check for the node 2 and trigger the build on node2?

我有一个以节点名称作为参数的作业(使用 NodeLabel Parameter Plugin 成为可能)。 我将始终以 node1 作为参数触发作业。我希望作业看到节点 1 在线且免费(该节点中没有其他构建正在进行)。如果 node1 空闲 运行 node1 上的这个作业,否则这个作业应该找到一个空闲节点并 运行 它在那个节点上(即,如果 node1 不空闲,则在其他节点(例如 node2)中触发相同的作业). 我怎样才能做到这一点?我怎么知道节点是否空闲?我不希望我的工作是等待一个节点完成其他构建。

在两个代理上具有相同的标签名称(例如 "windows")并且您的工作 运行 具有标签 "windows"。它将以稍微不同的方式运行。在这种情况下,当您 运行 带有目标标签 "windows" 的作业时,jenkins 会将请求发送到两个节点,但 jenkins 将 运行 代理上的作业首先响应。