我在TeamCity中使用Git作为VCS。
我想从我们正在构建的提交中提取git tag
知道怎么做吗?
答案 0 :(得分:1)
你可以这样做,但不是本地的。
您需要在构建代理上安装git,并确保在代理上签出代码。有关为何需要这样做的更多信息,请参阅TeamCity Checkout Mode Documentation
这将确保在代理上创建git存储库,然后您可以本机运行git命令。你需要的是
git describe --tags <commit-id>
在TeamCity中,您应该能够运行类似于此
的PowerShell步骤如果没有标签,这将会出错!您可以添加--always
开关,如果没有标签,则返回短路哈希值。
SET TEAMCITY VARIABLE
$tag = git describe --tags %build.vcs.number% --always
Write-Host "##teamcity[setParameter name='MyParameterName' value='$tag']"
必须已定义参数“MyParameterName”。
希望这有帮助
答案 1 :(得分:0)
您可以查看git describe
的输出v1.0.4-14-g2414721
^^
如果您在标记后没有看到“0”,那么标记引用的当前提交
。获取当前提交的所有标记:
git log -n1 --pretty=format:%h%d @
不要忘记你可以有多个与提交相关联的标签。
但对于TeamCity,请检查您是否可以使用VCS branch trigger,这有助于仅为标记构建
+:*
和-:<default>
。