将构建配置分配给特定构建代理
有时有必要更有效地管理 build agents的工作负载。 例如,如果运行耗时的性能测试,硬件资源较低的 构建代理 可能会减慢速度。 因此,将会有更多的构建进入 构建队列 ,反馈环可能比预期的要长。 为了避免这种情况,您可以:
建立运行配置策略 ,为代理定义在此代理上运行的构建配置。
定义特殊的 Agent Requirements ,以限制可以运行构建配置的 agents 池。 这些要求是:
tip
在设置项目或构建配置时,或者任何您需要的时候,您可以修改这些参数。 您对构建配置所做的更改将即时应用。
您可以指定特定的构建代理来运行构建,当 触发自定义构建时。
您可以将代理分割到池中。 每个项目都可以与多个池关联。 请查看 代理池s。
要设置 构建代理 的运行配置策略:
单击 支持人员 并选择所需的构建代理。
单击 兼容配置 选项卡。
将 当前运行配置策略 选项设置为 仅运行分配的配置。
单击 分配配置 按钮,并勾选要在构建代理上运行的所需构建配置名称。
为了让构建配置在具有指定名称和属性的构建代理上运行构建:
单击 管理 并选择所需的构建配置。
在左侧导航面板中选择 Agent Requirements(代理要求) 选项卡(请参阅 配置代理要求)。
单击 添加新的需求 并在 形参名称 字段中输入“teamcity.agent.name”。
将条件更改为“equals”,并在 价值 字段中输入完整的代理名称。
以下的 Kotlin 代码段揭示了结果:
object Build : BuildType({
name = "Build"
steps {
// build steps
}
// ...
requirements {
equals("teamcity.agent.name", "SandboxBuilder14")
}
})
根据您的需求,您可以按照以下方式修改此要求:
将 条件 从“equals”更改为非严格运算符(例如,“contains”),以包含多个名称相似的代理。 例如,
startsWith("teamcity.agent.name", "NightlyAgent")
条件允许构建在 "NightlyAgent1","NightlyAgent_24","NightlyAgent.A" 和其他满足要求的构建代理上运行。使用
teamcity.agent.jvm.os.name
参数,通过他们的操作系统而不是名称来选择代理。 例如,equals("teamcity.agent.jvm.os.name", "Mac OS X")
。