Teamcity 如何防止为个人生成运行生成步骤

Teamcity 如何防止为个人生成运行生成步骤,teamcity,teamcity-8.0,Teamcity,Teamcity 8.0,我们在TeamCity中有一个包含3个构建步骤的构建配置。有没有一种方法可以防止步骤2在个人构建中运行,从而使正常的VCS触发器执行步骤1、2和3,但只有1和3在个人构建中运行 对于个人生成,有一个变量BUILD_is_PERSONAL设置为true,但如果不是,则未定义该变量: 您打算如何使用该变量,因为每当我在生成配置脚本中使用它时,它都会要求我手动定义该值?您可以克隆生成配置(如果您的生成配置尚未基于模板,您可以利用模板),并且有两个构建配置:一个用于普通构建,另一个用于个人构建。在个人

我们在TeamCity中有一个包含3个构建步骤的构建配置。有没有一种方法可以防止步骤2在个人构建中运行,从而使正常的VCS触发器执行步骤1、2和3,但只有1和3在个人构建中运行

对于个人生成,有一个变量BUILD_is_PERSONAL设置为true,但如果不是,则未定义该变量:


您打算如何使用该变量,因为每当我在生成配置脚本中使用它时,它都会要求我手动定义该值?

您可以克隆生成配置(如果您的生成配置尚未基于模板,您可以利用模板),并且有两个构建配置:一个用于普通构建,另一个用于个人构建。在个人构建配置中,您将禁用步骤2。

build\u IS\u personal是一个常见的环境变量。仅当构建是个人的时才设置。构建步骤可以检查是否存在此变量,如果定义了此变量,则立即退出

对于unix shell,类似这样的功能应该可以工作:

if [ -n "$BUILD_IS_PERSONAL" ]; then
    echo "Build is personal, exiting"
    exit 0
fi 

我修改了第二步的配置,将其包装在此if语句中:

IF "%%BUILD_IS_PERSONAL%%"=="" (
rem do stuff
)

我缺少的是使用额外的“%”来转义TeamCity变量语法。

在启用步骤2的情况下,如何防止预提交被推送到配置中?+1这为我指明了正确的方向。我已经添加了我如何修复它的答案。如果字符串的长度为非零(-n,而不是-z),那么这是一个个人构建。请修理。