gpt4 book ai didi

Jenkins:如果节点离线则跳过

转载 作者:行者123 更新时间:2023-12-02 06:25:19 25 4
gpt4 key购买 nike

我有一个基于标签在 n 台机器上执行的任务。如果由于某种原因,其中一些机器离线,我不希望 Jenkins 将它们放入队列中,并等到它们在线。我希望 Jenkins 在剩余的机器上执行该作业并完成该作业。有什么建议吗?

编辑 1:我意识到这项工作与所有机器息息相关: Screenshot

我被迫这样做是因为我需要这项工作在所有机器上同时运行。所以,我的问题仍然是一样的。如果其中一些机器离线,我想跳过它们上的作业,而不是等待/排队。

编辑 2:Jenkins CLI 有一个明确的队列命令。目前看来很有希望。

最佳答案

使用GroovyAxis Plugin可以得到一个很好的解决方案。 和以下脚本,将返回仅在线从站的 Axis 列表:

def axis = []
for (slave in hudson.model.Hudson.instance.slaves) {
if (slave.getComputer().isOnline().toString() == "true") {
axis += slave.name
}
}
return axis

更新:自 Jenkins 2.0 以来,节点 API 已更改,因此请使用 Node.toComputer() 代替: http://javadoc.jenkins-ci.org/hudson/model/Node.html#toComputer%28%29

def axis = []
for (slave in jenkins.model.Jenkins.instance.getNodes()) {
if (slave.toComputer().isOnline()) {
axis += slave.getDisplayName()
}
}
return axis

关于Jenkins:如果节点离线则跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7891709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com