【发布时间】:2016-08-03 23:33:44
【问题描述】:
我在 TeamCity 中使用 Git 作为 VCS。
我想从我们正在构建的提交中提取git tag。
知道我该怎么做吗?
【问题讨论】:
我在 TeamCity 中使用 Git 作为 VCS。
我想从我们正在构建的提交中提取git tag。
知道我该怎么做吗?
【问题讨论】:
你可以这样做,但不是本机。
您需要在构建代理上安装 git,并确保在代理上签出代码。有关为什么需要这样做的更多信息,请参阅TeamCity Checkout Mode Documentation
这将确保在代理上创建一个 git 存储库,然后您可以在本机运行 git 命令。您需要的是
git describe --tags <commit-id>
在 TeamCity 中,您应该能够运行类似于此的 PowerShell 步骤
如果没有标签,这将出错!您可以添加--always 开关,如果不存在标签,则返回一个短散列。
设置团队城市变量
$tag = git describe --tags %build.vcs.number% --always
Write-Host "##teamcity[setParameter name='MyParameterName' value='$tag']"
必须已经定义了参数“MyParameterName”。
希望对你有帮助
【讨论】:
你可以查看git describe的输出
v1.0.4-14-g2414721
^^
如果标签后没有看到'0',那么当前提交没有被标签引用。
获取当前提交的所有标签:
git log -n1 --pretty=format:%h%d @
别忘了你可以有多个标签关联到一个提交。
但是对于 TeamCity,请检查您是否可以使用 VCS branch trigger,它可以帮助仅构建带有
的标签+:* 和 -:<default>。【讨论】: