如何在TeamCity中构建git标签?

时间:2013-12-03 14:24:13

标签: git tags teamcity git-checkout

我想为TeamCity服务器提供一个git标签来构建它。 我将标记(即release_1.1)作为参数传递给作业。因此,在作业内部,标记可用%tag%,但在Version Control Settings下,我看不到任何使用此参数的方法,因此服务器可以签出此标记。 有没有办法在设置中使用此参数来签出标签?

4 个答案:

答案 0 :(得分:56)

  1. 转到修改配置设置 - >版本控制设置
  2. 对于此构建配置的所有VCS根目录,请单击“编辑”,然后单击:

    1. put' +:refs / tags / *'进入分支规范文本框
    2. 选中使用标签作为分支
  3. 然后,当您按下' ...'时,您就可以选择一个标签。跑步旁边的按钮。

答案 1 :(得分:18)

我成功完成了以下工作:

在构建配置中,在“构建参数”下:

定义配置参数

  • 姓名:TagToBuild
  • 善良:Configuration parameter
  • 值:
  • 规格:
    • 标签:Tag to build
    • 说明:This should be the full path to the tag, i.e. refs/tags/0.5.5
    • 展示:Prompt
    • 输入:Text

请注意,“值”字段有意留空。

然后,在VCS Root:

  • 分行名称:%TagToBuild%

当我运行构建时,我会提示我提供分支/标记名称: Configuration Parameters

输入refs/tags/0.5.0之类的值会产生一个很好的构建,并在结果中列出分支名称: Successful builds

如果您尝试以超出描述的任何方式帮助用户,这似乎失败了。所以你不能做以下任何事情:

  1. 在配置参数中将“值”设置为refs/tags/并让用户添加标记名称。
  2. 在VCS Root中,将“分支名称”设置为refs/tags/%TagToBuild%
  3. 在我们稍微过时的(7.1)Team City实例的两种情况下,我都收到了错误:

      

    无法收集更改,错误:jetbrains / buildServer / buildTriggers / vcs / VcsRootChangesLoader.loadChanges的@NotNull参数的参数2不能为空

答案 2 :(得分:5)

我没有使用标签做到这一点,但我已经用分支完成了这个。我告诉TeamCity通过指定它应该构建+:refs/heads/*来构建所有分支。现在每当我推动任何分支时,TeamCity都会构建它。然后在构建中我使用git branch并查找以*开头的行。我将该分支名称嵌入到一个方便的位置(AssemblyInfo.cs for .NET,package.json for node。)请参阅http://confluence.jetbrains.com/display/TCD8/Working+with+Feature+Branches

答案 3 :(得分:4)

您需要在refs/tags/${tagName}中指定代码格式。

所以你的refs/tags/release_1.1