如何在TeamCity中构建git标签?

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

js3dev asked 2020-08-03T06:35:50Z
4个解决方案
62 votes
  1. 转到编辑配置设置->版本控制设置
  2. 对于此构建配置的所有VCS根目录,单击“编辑”,然后:

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

然后,您可以在运行旁边按“ ...”按钮来选择标签。

Michel Samia answered 2020-08-03T06:36:30Z
18 votes

我设法完成以下工作:

在构建配置的“构建参数”下:

定义配置参数:

  • name: refs/tags/%TagToBuild%
  • 种类:refs/tags/%TagToBuild%
  • 值:
  • 规格:
    • 标签:refs/tags/%TagToBuild%
    • 说明:refs/tags/%TagToBuild%
    • 显示:refs/tags/%TagToBuild%
    • 类型:refs/tags/%TagToBuild%

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

然后,在VCS根目录中:

  • 分支机构名称:refs/tags/%TagToBuild%

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

输入诸如refs/tags/%TagToBuild%之类的值会生成一个不错的版本,并在结果中列出分支名称:Successful builds

如果您尝试通过描述之外的任何方式帮助用户,这似乎会失败。 因此,您不能执行以下任何操作:

  1. 在“配置参数”中,将“值”设置为refs/tags/%TagToBuild%,并让用户添加标签名称。
  2. 在VCS根目录中,将“分支名称”设置为refs/tags/%TagToBuild%

在Team City稍旧(7.1)的两种情况下,我都收到错误:

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

Zhaph - Ben Duguid answered 2020-08-03T06:38:17Z
5 votes

我没有使用标签完成此操作,但是我已经使用分支完成了此操作。 我告诉TeamCity通过指定应该构建+:refs/heads/*来构建所有分支。现在,每当我推送任何分支时,TeamCity都将构建它。 然后在构建中,我然后使用git branch并查找以*开头的行。我将该分支名称嵌入到方便的位置(对于.NET,是AssemblyInfo.cs;对于节点,是package.json。)请参见[http:// confluence .jetbrains.com / display / TCD8 / Work + with + Feature + Branch]

robrich answered 2020-08-03T06:38:38Z
4 votes

您需要在refs/tags/release_1.1中指定标签格式。

所以您的应该是refs/tags/release_1.1

Welsh answered 2020-08-03T06:39:03Z
translate from https://stackoverflow.com:/questions/20353729/how-can-i-build-a-git-tag-in-teamcity