我有一个要求,我需要运行Jenkins作业,它将运行一些集成测试,因为那些集成测试需要一些服务,这些服务只能在一个特定的slave上运行,我想确保特定的作业只在那个slave上运行
让我们说我有工作-1,工作2,工作3和奴隶-1到药膏-20 我想确保只有job-1可以在slave-1上运行而所有其他作业(job-2,job-3)可以在任何salve上运行但不能在slave-1上运行
我可以通过启用选项:“限制此项目可以运行的位置”来实现其中的一部分,因此job-1将始终在slave-1上运行
问题是如何限制其他作业在slave-1上运行。
答案 0 :(得分:2)
为此,我认为最好从节点的角度进行限制而不是限制所有作业。
打开节点配置时,可以指定如何使用此节点。默认设置是尽可能多地使用它(以自动减少主服务器本身的负载)。
但是,在这种情况下,我们仅在要运行的作业将其定义为要在其上运行的节点时才使用该节点。
例如,我们有一个节点来运行我们的UI测试。并且它只能运行UI测试。指定UI测试的作业在其标签表达式中设置了该节点,所有其他作业均具有一个空表达式-意味着它们可以在任何地方运行-但节点配置限制了其他任何作业都可以在该节点上运行。
答案 1 :(得分:1)
标签表达式支持非常强大的运算符。例如,不使用slave-1将是:
!slave-1
答案 2 :(得分:0)