TeamCity On-Premises 2024.03 Help

代理要求

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

要为指定的构建配置创建一个明确的代理需求,请转到 构建配置设置 | 代理要求,然后点击 添加新要求。 每个需求代表某个参数的条件规则。 当您输入参数名称或值时,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

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

代理要求视频指南

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