我目前有两个工作大约会在同一时间相互运行。
我有两个奴隶设置,所以希望如果作业#1从奴隶#1开始,当作业#2开始时,它会看到奴隶#1忙,并使用奴隶#2。
我已经安装了NodeLabel参数插件,将默认节点设置为slave#1,并为每个作业设置slave#1和#2的可能节点。我已将节点资格设置为“忽略脱机节点”和“仅在作业成功时运行下一个构建”(仅因为我不能100%确定要选择的内容)。
我看到的问题是:
如果在第二个作业启动时正在使用从站#1,它会显示“(挂起 - 等待从站#1上的下一个可用执行器)[NodeParameterValue:slave#1 = slave#2]”而不是启动在奴隶#2
当我手动构建此作业时,它不会自动选择默认节点,而是让我选择使用“使用参数构建”
我猜我错过了一些相当简单的东西,因为我认为这必须是这个插件的常用用法...根据哪一个未使用动态选择一个奴隶?
答案 0 :(得分:1)
我通过确保被调用的作业将默认和可能的节点都设置为相同的两个从属来解决这个问题。 (而不是默认只是#1)。
其次,调用从属的作业必须在.properties文件中设置一个变量,该作业定义了应该运行哪个节点。然后使用标签工厂选项'所有节点读取此变量。在调用工作中。
这篇文章非常有用,但就像我说的那样,我在标签工厂使用了'节点'而不是'节点标签参数'他推荐的选项:http://www.shaunabram.com/dynamically-set-jenkins-node/