我有一个要求,我需要运行 Jenkins 作业,它将运行一些集成测试,因为这些集成测试需要一些服务,这些服务只能在一个特定的从站上使用,我想确保特定的工作只在那个从站上运行.
假设我有 job-1、job-2、job-3 和 slave-1 到 salve-20 我想确保只有 job-1 可以在 slave-1 上运行,所有其他作业(job-2、job-3)都可以在任何 salve 上运行,但不能在 slave-1 上运行
我可以通过启用选项来实现其中的一部分:“限制可以运行该项目的位置”,这样 job-1 将始终在 slave-1 上运行
问题是如何限制其他作业在slave-1上运行。
最佳答案
为此,我认为最好从节点的角度来限制,而不是限制所有作业。
打开节点配置时,您可以指定如何使用该节点。默认是尽可能使用它(为了自动减少master本身的负载)。
然而,我们在这种情况下使用的是仅当要运行的作业将其定义为要在其上运行的所需节点时才使用此节点。
例如,我们有一个节点来运行我们的 UI 测试。它应该只运行 UI 测试,而不是其他任何东西。指定 UI 测试的作业在其标签表达式中设置了此节点,所有其他作业的表达式为空 - 这意味着它们可以在任何地方运行 - 但节点配置限制任何其他作业在该节点上运行。
关于Jenkins - 如何防止作业在特定的奴隶上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41899082/