如何在TeamCity中构建git标签?

js3*_*dev 45 tags git teamcity git-checkout

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

Mic*_*mia 63

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

    1. 将'+:refs/tags/*'放入Branch规范文本框中
    2. 选中使用标签作为分支

然后,当您按下运行旁边的"..."按钮时,您将能够选择一个标签.

  • 不确定我是否理解这一步,默认情况下teamcity构建master我没有任何提示选择标记:http://i.imgur.com/CnT8XBN.png我在TeamCity Enterprise 9.1.3上 (3认同)

Zha*_*uid 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%

当我运行构建时,然后提示我提供分支/标记名称: 配置参数

输入一个值,例如refs/tags/0.5.0结果很好,并在结果中列出分支名称: 成功的构建

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

  1. 在配置参数中设置"值" refs/tags/并让用户添加标签名称.
  2. 在VCS Root中,将"Branch Name"设置为refs/tags/%TagToBuild%.

在这两个案例中我们稍微老了(7.1)的Team City实例我得到了错误:

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

  • 您可以通过创建名为`teamcity.build.branch`的参数来覆盖分支名称,这样您就可以覆盖分支并将其设置为您想要的任何内容,即`release` (4认同)
  • 使用更高版本的TeamCity(例如,我们使用的是9.1.5),它现在_does_工作将VCS根目录的"默认分支"设置为类似`refs/tags /%versionRoot%`的东西,这有点清洁而不是每次都要输入完整的路径 (2认同)

rob*_*ich 5

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


Wel*_*lsh 4

您需要在 中指定标签格式refs/tags/${tagName}

所以你的就是refs/tags/release_1.1

  • 如果我指定 `refs/tags/${tagName}` 作为默认分支,TeamCity 开始抱怨它无法连接到 git 存储库,是否有更干净的解决方案?这应该是一个非常常见的用例。 (2认同)