如何在 TeamCity 中构建 git 标签?

问题描述 投票:0回答:4

我想向 TeamCity 服务器提供一个 git 标签来构建它。 我将标签(即

release_1.1
)作为参数传递给作业。因此,在作业内部,标签可用作
%tag%
,但在
Version Control Settings
下,我看不到任何使用此参数的方法,因此服务器可以签出此标签。 有什么方法可以在设置中使用此参数来检查标签吗?

git tags teamcity git-checkout
4个回答
83
投票
  1. 转到编辑配置设置 -> 版本控制设置

  2. 对于此构建配置的所有 VCS 根,单击“编辑”,然后:

    1. +:refs/tags/*
      放入分支规范文本框中
    2. 在高级选项中勾选“启用在分支规范中使用标签”

然后,当您按运行旁边的“...”按钮时,您就可以选择标签。


19
投票

我已成功完成以下工作:

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

定义配置参数:

  • 姓名:
    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 根目录中:

  • 分行名称:
    %TagToBuild%

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

输入诸如

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

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

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

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


5
投票
您需要在

refs/tags/${tagName}

中指定标签格式。

所以你的将是

refs/tags/release_1.1


5
投票
我没有使用标签完成此操作,但我使用分支完成此操作。 我告诉 TeamCity 通过指定它应该构建

+:refs/heads/*

 来构建所有分支。  现在,每当我推送任何分支时,TeamCity 都会构建它。  然后在构建中,我使用 
git branch
 并查找以 
*
 开头的行。  我将该分支名称嵌入到一个方便的位置(.NET 为 AssemblyInfo.cs,node 为 package.json。)请参阅 
http://confluence.jetbrains.com/display/TCD8/Working+with+Feature+Branches

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.