orad
orad

Reputation: 16092

How to run a build step conditionally in TeamCity

This is a more generic version of this question: How to run a build step on a specific branch only?

For example, I can use a PowerShell script to run MSBuild if '%teamcity.build.branch.is_default%' -eq 'true' or if '%teamcity.build.branch%' -eq 'master' but then I will miss the collapsible log that comes with the TeamCity MSBuild build runner. Isn't there any easier way to conditionally run a build step?

Upvotes: 25

Views: 24478

Answers (2)

0xced
0xced

Reputation: 26558

JetBrains introduced support for conditional build steps in TeamCity 2020.1.

Here is a snippet of their blog post announcing this new feature:

Have you ever wanted to execute different command line scripts on different platforms, or deploy changes in different branches to different staging servers? Now you’re free to do just about anything! TeamCity 2020.1 allows you to specify conditions for your build steps and execute them only if the criteria are met.

conditional build steps demo

Upvotes: 17

Alina Mishina
Alina Mishina

Reputation: 3380

It is not possible to execute build step based on condition. Vote for the related request: https://youtrack.jetbrains.com/issue/TW-17939.
The recommended approach is to create separate build configuration for each branch. You can use templates to simplify the setup. In this case it will be easier to interpret the results and the statistics of the builds will be informative.
Also see the related answer (hack is suggested).

Upvotes: 28

Related Questions