我有几个项目生成我发布到内部服务器的NuGet包。我们正在使用 语义版本控制,并在我们的Git存储库中使用标签来控制版本号。
我正在这样标记:
git tag -a v1.0.0 -m "tagged"
而且,在TeamCity构建期间,我运行 git describe --long
,产生如下输出:
v1.0.0-0-ge9c047d
输出中的第四个数字是标记后的提交数。该 0
这意味着自标签以来没有提交任何提交。我使用前四个数字作为版本号(顺便提一下,整个字符串作为AssemblyInformationalVersion)。
我有TeamCity包并发布了一个NuGet包,但这里是粘性的。我只想发布标签,从不在标签之后提交(因为在这种情况下版本号可能是错误的,可能非常错误)。
我已经尝试将VCS根目录中的“分支规范”设置为“+:refs / tags / *”,这会导致构建所有标记,但TeamCity也坚持构建“默认分支”。如果我将“默认分支”设置为不存在的东西,我会收到错误。
如果一个特定的构建不是一个标签,我已经考虑过尽早结束构建,但我不知道如何在没有失败构建的情况下做到这一点,这不是我想要的。
如何使一个或多个构建步骤仅运行新标记,而不是常规提交?