0

我知道如果构建失败会使机器离线的插件。我的问题是,如果某个步骤失败,我可以让机器离线吗?

我正在运行某些 Windows 批处理预构建步骤,这些步骤可以还原每台机器,并且如果还原失败,我希望使从站脱机

4

3 回答 3

1

奇怪的要求,但我尊重它:)

Brut force - 如果你想取出从机,你可以从运行在该从机上的批处理文件中杀死它(杀死 java 进程)。在批处理文件中使用 taskkill(在命令行上运行taskkill /?以查看用法),您应该使用start命令在作业中分叉该文件(请参阅命令行上的start /?以查看用法)。

另外,看看这个这个帖子。看起来与您的需求相似,但需要更好的控制。

希望这可以帮助。

于 2013-02-23T06:05:07.140 回答
1

老问题,但这里有一些我考虑过(并尝试过)的其他方法。我们有一个工作来监控构建机器并在从属设备离线或磁盘空间不足时调用 Pager Duty。在我们的环境中,强制使机器离线是有问题的。

  1. 您可以更改机器上的标签,而不是删除从属设备(例如杀死它或使其脱机),以便其他作业不再选择它。这可以用 groovy 来完成。警告:标签更改似乎需要一段时间才能传播,因此可能仍会选择机器。

  2. 使用Conditional Build Step插件并在失败时使用 groovy 使机器脱机。注意:我还没有测试过这个 groovy ......它很旧。

      manager.build.getBuiltOn().toComputer.setTemporarilyOffline(true)
    
  3. 您可以让该作业永远运行(睡眠、睡眠、睡眠),而不是让机器脱机——它不会脱机,但其他作业将无法再选择它。同时,它可以继续重试恢复。

  4. 还有一个Node Stalker插件,它允许下游作业作为上游作业在相同的节点上运行。这样,当故障发生时,您的下游作业可以进行清理。但是,为故障机器安排的另一项作业首先进入的风险很小。

于 2016-03-30T22:17:29.437 回答
0

您只想从命令提示符下使机器脱机吗?否则,您可以使用 groovy post build 步骤编写简单的脚本以使每台机器脱机。在命令提示符下,除非您使用某些 power shell 实用程序,否则您将无法访问其他从站。

于 2013-02-23T06:31:28.530 回答