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 the '...' button beside run.
I've managed to get the following working:
In the Build Configuration, under "Build Parameters":
Define a Configuration Parameter:
- Name:
TagToBuild
- Kind:
Configuration parameter
- Value:
- Spec:
- Label:
Tag to build
- Description:
This should be the full path to the tag, i.e. refs/tags/0.5.5
- Display:
Prompt
- Type:
Text
- Label:
Note that the "value" field was intentionally left blank.
Then, in the VCS Root:
- Branch Name:
%TagToBuild%
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
refs/tags/%TagToBuild%
.
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 refs/tags/${tagName}
.
So yours would be refs/tags/release_1.1
.