我知道如果构建失败会使机器离线的插件。我的问题是,如果某个步骤失败,我可以让机器离线吗?
我正在运行某些 Windows 批处理预构建步骤,这些步骤可以还原每台机器,并且如果还原失败,我希望使从站脱机
我知道如果构建失败会使机器离线的插件。我的问题是,如果某个步骤失败,我可以让机器离线吗?
我正在运行某些 Windows 批处理预构建步骤,这些步骤可以还原每台机器,并且如果还原失败,我希望使从站脱机
老问题,但这里有一些我考虑过(并尝试过)的其他方法。我们有一个工作来监控构建机器并在从属设备离线或磁盘空间不足时调用 Pager Duty。在我们的环境中,强制使机器离线是有问题的。
您可以更改机器上的标签,而不是删除从属设备(例如杀死它或使其脱机),以便其他作业不再选择它。这可以用 groovy 来完成。警告:标签更改似乎需要一段时间才能传播,因此可能仍会选择机器。
使用Conditional Build Step插件并在失败时使用 groovy 使机器脱机。注意:我还没有测试过这个 groovy ......它很旧。
manager.build.getBuiltOn().toComputer.setTemporarilyOffline(true)
您可以让该作业永远运行(睡眠、睡眠、睡眠),而不是让机器脱机——它不会脱机,但其他作业将无法再选择它。同时,它可以继续重试恢复。
还有一个Node Stalker插件,它允许下游作业作为上游作业在相同的节点上运行。这样,当故障发生时,您的下游作业可以进行清理。但是,为故障机器安排的另一项作业首先进入的风险很小。
您只想从命令提示符下使机器脱机吗?否则,您可以使用 groovy post build 步骤编写简单的脚本以使每台机器脱机。在命令提示符下,除非您使用某些 power shell 实用程序,否则您将无法访问其他从站。