我在Slaves上运行集成测试,标签为"IntegrationTest"
。
当作业开始时,我使用Node.setLabelString(String)
将Slave标签从IntegrationTest修改为"_out_IntegrationTest"
,以阻止此从属设备运行下一轮集成测试,因为我们需要将此从属设备恢复到清洁环境之前整合测试。
问题是,队列中的以下Integration Test作业仍然可以使此奴隶运行,即使其标签由"_out_IntegrationTest"
设置为Node.setLabelString(String)
。
我不确定Label是否被修改,但是队列没有意识到这一点。
当我从Web UI手动将slave Label修改为"_out_IntegrationTest"
时,集成测试作业将无法在此从属服务器上运行。
当Node.setLabelString(String)
修改了从属标签时,作业仍然可以在其上运行。
注意:
调用Queue.maintain()
后调用Node.setLabelString(String)
。
答案 0 :(得分:0)
我的工作场所也有类似情况,我需要在运行作业后重新启动奴隶。所以我有一个单独的工作,重新启动它运行的奴隶。作为主要作业中的第一个构建步骤,我请求使用参数“在同一节点上构建”来安排重新启动作业的参数化构建。重新启动作业配置了非常高的优先级(通过Priority Sorter Plugin),以确保它是该节点上的下一个作业。然后我有主要工作的其他构建步骤来执行其所需的任务。
当主作业完成后,重启作业进入并重新启动从站 - 在这里您可以执行从站恢复到干净环境。