如何通过Jenkins中的脚本或插件检查从属是否在线,然后再从其他项目开始构建

stu*_*ioj 7 jenkins

有没有办法通过在主站上运行的示例来检测某个作业)以检查下一个构建步骤所需的从站是否在线?

如果并非所有需要的从属节点都在线,我希望主作业失败并且不启动任何下一个构建.

小智 7

这是一个可以做到的Groovy脚本.它需要在"System Groovy Script"构建步骤中.最后一行确定脚本的返回状态,非零状态将导致脚本返回失败,这将使作业失败.

import hudson.model.*
def requiredNodes = ['one','two','three'];
def status = 0;
for (node in requiredNodes) {
  println "Searching for $node";
  slave = Hudson.instance.slaves.find({it.name == node});
  if (slave != null) {
    computer = slave.getComputer();
    if (computer.isOffline()) {
      println "Error! $node is offline.";
      status = 1;
    }
    else {
      println "OK: $node is online";
    }
  }
  else {
    println "Slave $node not found!";
    status = 1;
  }
}
status;
Run Code Online (Sandbox Code Playgroud)