我在VSTS中有一个YAML构建定义,可以正常工作一段时间。
我最近开始使用this task从发布定义中标记我的仓库。
工作正常,除了每次此任务向我的仓库添加新的轻量级标签时,它还会触发该标签上的CI。与构建关联的分支是refs/tags/mytag
。
我试图通过在YAML定义中添加触发器分支过滤器来防止该行为:
trigger:
branches:
include:
- master
- release
exclude:
- refs/tags/*
但是我的构建仍在被触发。
关于如何防止在创建新标签时触发构建定义的想法?
注意
我还尝试通过VSTS门户创建自己的标签(在这种情况下,它不是轻量级标签)。该构建仍在触发,但是以另一种方式,因为它因错误消息Expected a Commit, but objectId f768714f0bac926164dea5b77e696da7a73db426 resolved to a Tag
而失败。
在这种情况下,版本字符串也无法正确计算,从而导致使用简单的int
而不是我格式化的版本字符串。
答案 0 :(得分:1)
目前,尚无任何选项来指定包含/排除标签以触发CI构建。
并且有一个用户副Trigger build when pushing tag to git,该用户建议该功能可以在CI构建中指定标签,您可以投票和跟进。
目前的解决方法是覆盖“触发器”标签中的YAML持续集成触发器:
在您的YAML构建定义中->触发器选项卡->从此处覆盖YAML持续集成触发器->包括要触发分支的分支(根据您的情况master
和release
分支)- >保存构建定义。
现在仅将提交推送到master
或release
分支将触发CI构建,而标记创建将不会触发CI构建。