How do I set the build number in Teamcity?

Question:

I’m trying to set the build number format in Teamcity using Powershell (kinda like in this Octopus Deploy blog post).

However, I don’t know if the way Teamcity handles the service messages has changed since then or if I’m doing this wrong because it’s not working.

I have the following Powershell script as the first step in my build config:

(I’ve also tried $branch = "%teamcity.build.branch%" on line 5)

So when I try this, the if statement doesn’t run because although it seems like in the example given by Octopus Deploy that $branch is set to the actual value of %vcsroot.branch% it’s not and the result that it writes out to Teamcity is literally ##teamcity[buildNumber '$buildNumber']. However, this does seem to work but the build number can’t have / in it so my build fails because the branch is set to refs/head/master rather than just master.

Where am I going wrong?

Answer:

It seems the last line of the script should be:

A note: for the script to work, if should be specified as inline script in TeamCity build step (which makes TeamCity %-references to work).

BTW, you can make TeamCity display short branch name by using +:refs/heads/* branch specification in the VCS root

Source:

How do I set the build number in Teamcity? by licensed under CC BY-SA | With most appropriate answer!

Leave a Reply