TeamCity On-Premises 2024.12 Help

Agent Requirements(代理要求)

代理要求 是特殊的条件,定义了一个 构建配置 是否可以在特定的 构建代理 上运行。 与通过 代理池s 进行分组一起,他们为您提供了灵活的控制,以便将构建分发到代理。

为指定的构建配置创建明确的代理要求:

  1. 导航到 Administration | <Your Configuration> 以访问构建配置设置。

  2. 打开 代理要求 设置选项卡。

  3. 单击 添加新的需求。 每个需求代表某个参数的条件规则。 当您输入参数名称或值时,TeamCity 将为您显示相关建议。

要临时禁用或删除一个需求,使用其上下文菜单。

基于环境变量和属性的代理要求

当构建代理在 TeamCity 服务器上注册时,它会提供关于其配置的信息,包括其环境变量、系统属性和在 buildAgent.properties 文件中指定的附加设置。 您可以使用这些参数来定义 代理要求。

例如,如果当前的构建配置只能在 Windows 代理上运行,请添加以下规则:

  • 参数名称: teamcity.agent.jvm.os.name

  • 条件: equals

  • 值: Windows

在此需求创建之后,TeamCity 将检查所有活动代理的 jvm.os.name 系统属性的值。 如果它不等于 Windows 对于特定的代理,这个代理将被标记为与当前构建配置不兼容。

您也可以使用 正则表达式 来匹配参数值。 例如,如果您希望通过匹配代理名称的各个部分来选择代理,添加以下规则:

  • 参数名称: teamcity.agent.name

  • 条件: 匹配项

  • 值: (macos|linux|win)-(m|l|xl).*

兼容和不兼容的代理都列在 构建配置设置 | 代理要求 中。

您可以为单个参数添加多个代理需求。 只有满足所有这些要求,代理才会被视为兼容。

隐式要求

任何 引用 (一个被 % 字符围住的名称)对构建中的未知参数都被认为是一个 隐式需求。 构建只有在以下情况下才会在代理上运行:

  • 代理提供了这个参数,或者

  • 参数在构建配置(或项目)级别上定义。

构建配置的值的优先级高于在代理上定义的值。

例如,如果您将构建运行程序参数定义为对另一属性的引用: %env.JDK_16%/lib/*.jar ,这将隐式地为引用的属性添加一个代理需求:也就是, env.JDK_16 必须被定义。 要在代理上定义此类属性,您可以:

  • buildAgent.properties 文件中指定它们。

  • 在构建代理上设置 环境变量 JDK_16

  • 在构建配置的 参数 页面(或 项目设置 中)指定值。 所有构建代理将使用属性的相同值。

代理要求视频指南

最后修改日期: 2025年 4月 8日