跳过TeamCity中个人构建的步骤

Kra*_*zek 7 teamcity teamcity-8.0

在运行TeamCity 8.0的CI服务器上,我有一个构建配置,其最后一步是创建和推送新版本的NuGet包.

我想知道如果当前版本是个人版本,是否有办法抑制这两个步骤.

任何线索?

Jam*_*den 7

团队城市中有一个环境变量可以告诉您这是否是个人构建BUILD_IS_PERSONAL:

请参阅http://confluence.jetbrains.com/display/TCD7/Predefined+Build+Parameters

例如,使用msbuild运行器(您只需要提供nuget路径)

<Project DefaultTargets="Pack" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Target Name="Pack" Condition="$(BUILD_IS_PERSONAL)!='True'">
    <Message Text="Personal: $(BUILD_IS_PERSONAL)"/>
    <Exec Command="$(NUGETPATH)\nuget pack $(NugetProject)"/>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用额外的构建步骤暂停构建步骤的条件.从而使他们有条件:

添加一个使用powershell的额外构建步骤 -

if (([environment]::GetEnvironmentVariable("BUILD_IS_PERSONAL","Process")) -eq "True")
{ 
  throw
}
Run Code Online (Sandbox Code Playgroud)

在每个构建步骤中都有以下选项:执行步骤如果选择"如果以前的所有构建成功"选项,那么将通过该步骤如果您选择:"即使某些先前的构建步骤失败",它也将执行.


KIR*_*KIR 0

TeamCity 2020.1 添加了对条件构建步骤的支持,并且有一个快速快捷方式可以跳过个人构建的构建步骤。