VSTS:无法添加触发发布的构建标签

Posted

技术标签:

【中文标题】VSTS:无法添加触发发布的构建标签【英文标题】:VSTS: Unable to add Build Tag which trigger release 【发布时间】:2017-06-21 21:41:19 【问题描述】:

在 VSTS online 中,我在发布过程(在触发器下)中检查了持续部署。在 Set trigger on artifact source 上,我将标记条件 (with tags) 设置为 Automated

我在构建过程中也有一个标签。 (正确地将标签添加到构建中)

但是我的释放不是自动触发的?在部署状态(在我的构建中)它说“为发布触发器设置的标签与构建分支中的标签不匹配”。但他们匹配(见图片)。可能是什么问题?

【问题讨论】:

【参考方案1】:

这是因为您在构建完成后添加了标签Automated(通过标签源或手动)。这不能触发 CD 发行。 应在构建期间添加标签(不是构建完成)。因此,您可以在构建定义中添加带有内联脚本的 power shell 任务:

Write-Host "##vso[build.addbuildtag]Automatd" 

构建完成后会触发发布。

【讨论】:

谢谢,我在命令和标签之间有一个空格;(。Write-Host "##vso[build.addbuildtag](space)Automated" 现在可以使用了。 在构建期间添加发布标签何时有用?这与在每个构建上创建一个版本不一样吗?此外,我们通常希望在每次提交时构建,而不是发布每个构建。【参考方案2】:

我以不同的方式执行此操作,非常类似于: How to trigger VSTS build and release when pushing tags?

在我的发布管道中,我将分支过滤器添加到 'refs/tags/' 或 'refs/tags/v' 以用于持续部署触发器,或者我想要过滤操作的任何其他位置我的发布管道。好消息是您可以在构建完成之后应用您的 Git 标签,就像您喜欢的那样。这是可选的,但我将 Git 与 GitVersion 结合使用。

另外,请注意 Git 标签和构建标签并不相同。 Git 标签存储在 Git 存储库中,而构建标签与 VSTS/Azure 构建摘要相关联。不要混淆这两者。

【讨论】:

将新的 git 标签推送到存储库时,您建议的构建分支过滤器不会触发。自从您发表评论后有什么变化吗?【参考方案3】:

对于未来的读者来说,即使在任何时候(不仅仅是在构建期间)将标签添加到构建中,您现在似乎也可以触发发布。

在将标签添加到现有构建时创建发布。启用此选项后,将在将标签添加到尚未发布的现有构建时创建发布。这可能会导致将旧版本部署到环境中。

【讨论】:

我在检查Create release when tags are added...后仍然收到消息Tags set...did not match...

以上是关于VSTS:无法添加触发发布的构建标签的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft.AspNet.Identity.EntityFramework 上的 vsts 构建失败

Xamarin.iOS VSTS 无法将临时钥匙串添加到钥匙串搜索路径

VSTS GitHub拉取请求触发器未触发

如何将 VSTS 上的构建配置为 FTP 部署

VSTS Build在git commit上排队两次

尝试在 VSTS 的 YAML 构建模板中添加 SonarQube - SonarAnalysis 任务作为构建任务