How can I build a git tag in TeamCity?
I want to provide a git tag to the TeamCity server to build it.
I pass the tag (i.e.
release_1.1) as a parameter to the job. So inside the job the tag is available as
%tag%, but under the
Version Control Settings I don’t see any way to use this parameter so the server can checkout this tag.
Is there any way this parameter can be used in the settings to checkout the tag?
4 Solutions collect form web for “How can I build a git tag in TeamCity?”
- Go to Edit Configuration Settings -> Version Control Settings
For all your VCS roots for this build configuration click Edit and then:
- put ‘+:refs/tags/*’ into Branch specification textbox
- check Use tags as branches
Then you’ll be able to choose a tag when you press ‘Run…’
I’ve managed to get the following working:
In the Build Configuration, under “Build Parameters”:
Define a Configuration Parameter:
Tag to build
This should be the full path to the tag, i.e. refs/tags/0.5.5
Note that the “value” field was intentionally left blank.
Then, in the VCS Root:
- Branch Name:
When I run the build, I’m then prompted to supply a branch/tag name:
Entering a value such as
refs/tags/0.5.0 results in a nice build, with the branch name listed in the results:
If you try to help the user in any way beyond the description, this seems to fail. So you can’t do any of the following:
- In the Configuration Parameter set the “Value” to
refs/tags/and have the user add the tag name.
- In the VCS Root set the “Branch Name” to
In both cases on our slightly old (7.1) instance of Team City I got the error:
Failed to collect changes, error: Argument 2 for @NotNull parameter of jetbrains/buildServer/buildTriggers/vcs/VcsRootChangesLoader.loadChanges must not be null
I’ve not done this with tags, but I’ve done this with branches. I tell TeamCity to build all branches by specifying it should build
+:refs/heads/*. Now whenever I push any branch, TeamCity builds it. Then within the build I then use
git branch and look for the line that starts with a
*. I embed that branch name in a convenient spot (AssemblyInfo.cs for .NET, package.json for node.) see http://confluence.jetbrains.com/display/TCD8/Working+with+Feature+Branches
You need to specify the tag format in
So yours would be