在运行 TeamCity 8.0 的 CI 服务器上,我有一个构建配置,其最后一步是创建和推送新版本的 NuGet 包。
我想知道如果当前构建是个人构建,是否有办法抑制这两个步骤。
有什么线索吗?
最佳答案
在 teamcity 中公开了一个环境变量,可以告诉您这是否是个人构建 BUILD_IS_PERSONAL :
见 http://confluence.jetbrains.com/display/TCD7/Predefined+Build+Parameters
例如。使用 msbuild runner(你只需要提供 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>
或者,您可以使用额外的构建步骤来暂停构建步骤的条件。从而使它们有条件:
添加一个使用 powershell 的额外构建步骤-
if (([environment]::GetEnvironmentVariable("BUILD_IS_PERSONAL","Process")) -eq "True")
{
throw
}
在每个构建步骤都有一个选项:执行步骤
如果您选择“如果之前的所有构建成功”选项,则该步骤将通过
如果您选择:“即使之前的某些构建步骤失败”,它将执行。
关于teamcity - 在 TeamCity 中跳过个人构建步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18867343/