Jenkins - 如何防止作业在特定从属设备上运行

Pan*_*til 2 master-slave jenkins

我有一个要求,我需要运行 Jenkins 作业,该作业将运行一些集成测试,因为这些集成测试需要一些仅在一个特定从属设备上可用的服务,我想确保该特定作业仅在该从属设备上运行。

假设我有 job-1、job-2、job-3 和从属 1 到 salve-20 我想确保只有 job-1 可以在从属 1 和所有其他作业(job-2、job-3 ) 可以在任何从机上运行,​​但不能在 Slave-1 上运行

我可以通过启用选项“限制此项目可以运行的位置”来实现其中一部分,因此 job-1 将始终在 Slave-1 上运行

问题是如何限制其他作业在 Slave-1 上运行。

Tob*_*ias 6

为此我认为最好从节点的角度进行限制,而不是限制所有作业。
打开节点配置时,您可以指定如何使用该节点。默认是尽可能使用它(以便自动减少master本身的负载)。
然而,我们在这种情况下使用的是,仅当要运行的作业将其定义为其所需运行的节点时才使用此节点。

Jenkins节点配置

例如,我们有一个节点来运行 UI 测试。并且它只运行 UI 测试而不运行其他任何东西。指定 UI 测试的作业在其标签表达式中设置了此节点,所有其他作业都有一个空表达式 - 意味着它们可以在任何地方运行 - 但节点配置限制在该节点上运行的任何其他作业。