TeamCity On-Premises 2024.03 Help

将构建配置分配给特定构建代理

有时候,有必要更有效地管理 构建代理 的工作量。 例如,如果运行耗时的性能测试,硬件资源较低的 构建代理 可能会减慢速度。 因此,将会有更多的构建进入 构建队列,反馈环可能比预期的要长。 为了避免这种情况,您可以:

  1. 建立运行配置策略,为代理定义在此代理上运行的构建配置。

  2. 定义特殊的 Agent Requirements,以限制可以运行构建配置的 agents 池。 这些要求是:

    • 构建代理名称。 如果构建代理的名称被设为必选项,那么构建配置将仅在该代理上运行构建。

    • 构建代理 属性。 如果某个属性,例如,运行某个特定配置的构建或操作系统的能力,被设定为需求,那么构建配置将在满足此需求的代理上运行构建。

代理池

您可以将代理分割到池中。 每个项目都可以与多个池关联。 请查看 代理池s

建立运行配置策略

要设置 构建代理 的运行配置策略:

  1. 点击 Agents 并选择所需的构建代理。

  2. 点击 兼容配置 标签页。

  3. 当前运行配置策略 选项设置为 仅运行指定的配置

  4. 点击 分配配置 按钮,并勾选您所需的构建配置名称以在构建代理上运行。

将构建代理名称和属性设置为构建配置需求

为了让构建配置在具有指定名称和属性的构建代理上运行构建:

  1. 点击 Administration 并选择期望的构建配置。

  2. 在左侧导航面板中选择 代理要求 标签(参见 配置代理要求)。

  3. 点击 添加新需求 并在 参数名称 字段中输入 "teamcity.agent.name"。

  4. 将条件更改为 "等于",并在 字段中输入完整的代理名称。

以下的 Kotlin 代码段揭示了结果:

object Build : BuildType({ name = "Build" steps { // build steps } // ... requirements { equals("teamcity.agent.name", "SandboxBuilder14") } })

根据您的需求,您可以按照以下方式修改此要求:

  • Condition 从 "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")

最后修改日期: 16日 7月 2024年