Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 374
js3dev Avatar asked Dec 03 '13 14:12

js3dev


People also ask

How do I create a git tag?

Create Git Tag. In order to create a new tag, you have to use the “git tag” command and specify the tag name that you want to create. As an example, let's say that you want to create a new tag on the latest commit of your master branch. To achieve that, execute the “git tag” command and specify the tagname.

How do I merge a tag into a branch?

Then you can perform git merge tag_name to merge the tag onto a branch. I had to do git remote add upstream [email protected]/org/repo followed by git fetch --tags upstream to make it work.


Video Answer


2 Answers

  1. Go to Edit Configuration Settings -> Version Control Settings
  2. For all your VCS roots for this build configuration click Edit and then:

    1. put '+:refs/tags/*' into Branch specification textbox
    2. check Use tags as branches

Then you'll be able to choose a tag when you press the '...' button beside run.

like image 176
Michel Samia Avatar answered Sep 18 '22 15:09

Michel Samia


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

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: Configuration Parameters

Entering a value such as refs/tags/0.5.0 results in a nice build, with the branch name listed in the results: Successful builds

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:

  1. In the Configuration Parameter set the "Value" to refs/tags/ and have the user add the tag name.
  2. 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

like image 24
Zhaph - Ben Duguid Avatar answered Sep 19 '22 15:09

Zhaph - Ben Duguid