TeamCity On-Premises 2024.03 Help

需求条件

这个页面解释了在 代理要求构建步骤执行要求 中所使用的条件。

条件

描述和示例

存在

如果指定的属性存在,则返回 true

例如:

exists("DotNetCLI_Path")

不存在

如果指定的属性不存在,则返回 true

例如:

doesNotExist("env.TEAMCITY_GIT_PATH")

等于

如果指定的属性存在并等于给定的值,返回 true

您可以将 Value 字段留空,以检查指定的属性是否存在但为空。

例如:

equals("docker.server.osType", "Linux")

不等于

如果指定属性的值与给定值不同,或者该属性不存在,返回 true

您可以将 Value 字段留空,以检查指定的属性是否存在且不为空(有值)。

例如:

doesNotEqual("system.teamcity.buildType.id", "Tests")

不超过

如果目标数值属性满足相应条件,返回 true

例如:

moreThan("build.number", "256")

lessThan("teamcity.agent.hardware.cpuCount", "10")

超过

小于

不小于

版本超过了

将软件版本与给定值进行比较。 支持多种值格式,包括点( . )分隔符、前置零、常见后缀如 betaEAP。 如果版本号包含字母字符,它们也会被比较,例如, 1.1e < 1.1g

例如:

moreThanVer("maven", "3.0")

版本不超过

版本低于

版本不低于

包含

如果指定属性的值包含给定值,返回 true

例如:

contains("teamcity.serverUrl", "localhost")

不包含

如果指定属性的值不包含给定值,或者此属性不存在,则返回 true

例如:

doesNotContain("system.agent.name", "_local")

以...开始

如果指定属性的值以给定值开始(结束),则返回 true

例如:

startsWith("teamcity.agent.jvm.os.name", "Mac")

endsWith("teamcity.agent.work.dir", "/work")

以...结束

匹配

如果指定的属性与给定的 正则表达式 模式匹配(不匹配),则返回 true

例如,使用 matches("CUSTOM_PARAMETER", ".*(,|^)foo(,|$).*") 来匹配所有的 foofoo,barbar,foobar,foo,xxx 出现的地方。

不匹配

结合条件

当定义了多个要求时,它们会被隐式地通过布尔值 AND 连接起来。 例如,以下一组条件要求同时存在 env.JDK_17_0 参数和 env.JDK_21_0 参数:

requirements { exists("env.JDK_17_0") exists("env.JDK_21_0") }

目前没有可用的机制来用布尔 OR 将需求连接起来。

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