如何隔离多个 Teamcity 代理,以免被特定工作选中

How to isolate multiple Teamcity agents from getting picked up by a specific job

我希望我的构建作业不构建在特定的 teamcity 代理上,并且构建代理名称没有通用模式。有没有一种方法可以隔离多个代理,使其不被单个作业选中。

例如,我可以使用以下参数确保构建作业不会选择 1 个代理。

teamcity.agent.name 

does not match

agent-001

我怎样才能同样地告诉 teamcity 作业不要 运行 以下代理。

"123-agent"
"my_agent"
"test_agent"
"agent_do_not_use"

我不能使用相同的参数,teamcity.agent.name 与多个代理不匹配。 请所有 teamcity 专家帮助我了解实现此目标的最佳方法。

您可以在本地机器里面的代理配置里面添加一个特定的参数:C:\BuildAgent\conf\buildAgent.properties

然后,您可以添加一些具体的内容,例如:system.Is<MyFeature>Available=True

然后,在 teamcity 配置中,您将使用此参数添加一个 Agent Requirement。

您可以使用接受正则表达式的 "does not match" 条件添加代理要求并将其设置为: 123-代理|my_agent|test_agent|agent_do_not_use

使用基于代理人 buildAgent.properties 文件中特定 属性 的存在(或不存在)的代理人要求可能是在要求中使用代理人名称的更好解决方案。

管理代理兼容性的替代方法是:使用代理池并将代理的兼容配置设置为有限集。