如何在TeamCity中有条件地运行构建步骤

如何在TeamCity中有条件地运行构建步骤,teamcity,teamcity-9.0,Teamcity,Teamcity 9.0,这是这个问题的一个更一般的版本: 例如,如果'%teamcity.build.branch.is_default%'-eq'true'或者'%teamcity.build.branch%'-eq'master',我可以使用PowerShell脚本来运行MSBuild,但是我将错过teamcity MSBuild生成运行程序附带的可折叠日志。有没有更简单的方法可以有条件地运行构建步骤?无法根据条件执行构建步骤。投票支持相关请求:。 建议的方法是为每个分支创建单独的构建配置。您可以使用来简化设置。在

这是这个问题的一个更一般的版本:


例如,如果
'%teamcity.build.branch.is_default%'-eq'true'
或者
'%teamcity.build.branch%'-eq'master'
,我可以使用PowerShell脚本来运行MSBuild,但是我将错过teamcity MSBuild生成运行程序附带的可折叠日志。有没有更简单的方法可以有条件地运行构建步骤?

无法根据条件执行构建步骤。投票支持相关请求:。
建议的方法是为每个分支创建单独的构建配置。您可以使用来简化设置。在这种情况下,将更容易解释结果,并且生成的统计信息将是有用的。

另请参阅相关内容(建议使用黑客)。

JetBrains在TeamCity 2020.1中引入了对的支持

以下是他们发布这一新功能的博文片段:

您是否曾经希望在不同的平台上执行不同的命令行脚本,或者将不同分支中的更改部署到不同的暂存服务器?现在你可以做任何事了!TeamCity 2020.1允许您为构建步骤指定条件,并仅在满足条件时执行这些条件


可能的副本自2015年以来有什么变化吗?没有条件的if步骤,如octopus部署?在2019年仍然没有更改。您可以通过使用单独的第一层构建来预处理构建来解决此问题,第一层构建只运行一个评估条件的自定义脚本,如果没有更改,则将自身标记为“已取消”,然后使用“依赖已取消的依赖项:取消构建”来依赖真实的构建快照。。。或您可以在第一个构建步骤中使用%param%设置一个参数,然后使用该%param%作为每个剩余步骤(假设它们是Comman Line runner类型)的条件,这项功能已经过期很久了,特别是在使用Git时,您可以配置其他分支和请求来触发构建。即使使用模板,也要为十几个以上的配置中的每一个维护单独的配置是相当痛苦的。在我们的例子中,管道中唯一的可变构建步骤是在何处部署二进制文件,我们有一个非常简单的Powershell脚本,可以根据分支/PR进行切换。看起来这项功能很快就会发布:如果我需要将该步骤限制到几个分支,该怎么办?