我在 VSTS 中有一个 YAML 构建定义,有时工作正常。
我最近开始使用 this task 从我的发布定义中标记我的存储库.
它工作得很好,除了每次这个任务向我的存储库添加一个新的轻量级标签时,它也会触发我对该标签的 CI。与构建关联的分支是 refs/tags/mytag。
我尝试通过在 YAML 定义中添加触发器分支过滤器来防止这种行为:
trigger:
branches:
include:
- master
- release
exclude:
- refs/tags/*
但是我的构建仍在被触发。
知道如何在创建新标签时防止触发构建定义吗?
注意
我还尝试从 VSTS 门户自己创建一个标签(在这种情况下,这不是一个轻量级标签)。构建仍在被触发,但以不同的方式,因为它失败并显示错误消息预期提交,但 objectId f768714f0bac926164dea5b77e696da7a73db426 解析为标签
。
此外,在这种情况下,版本字符串未正确计算,并导致一个简单的 int
而不是我的格式化版本字符串。
最佳答案
目前,没有选项可以指定标签包含/排除来触发 CI 构建。
还有用户副Trigger build when pushing tag to git建议在CI构建中指定标签的功能,您可以投票并跟进。
目前的解决方法是从“触发器”选项卡覆盖 YAML 持续集成触发器:
在您的 YAML 构建定义中 -> 触发器选项卡 -> 从此处覆盖 YAML 持续集成触发器 -> 包含要触发分支的分支(master
和 release
适合您情况的分支)-> 保存构建定义。
现在只有提交推送到 master
或 release
分支才会触发 CI 构建,标签创建不会触发 CI 构建。
关于build - 创建标签时禁用 VSTS 构建触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51090583/