在VSTS在线中,我在发布过程(触发下)中检查了持续部署。在Array
(
[0] => Array
(
[food] => bread
[color] => white
[language] => php
)
[1] => Array
(
[food] => rice
[color] => purple
[language] => c#
)
[3] => Array
(
[food] => steak
[color] => yellow
[language] => ruby
)
)
上,我将标记条件(Set trigger on artifact source
)设置为自动。
我在构建过程中也有一个标记。 (正确地将标记添加到构建中)
但我的发布不会自动触发?在Deployments状态(在我的构建中),它表示"为release release设置的标签与build branch"中的标签不匹配。但他们匹配(见图片)。可能是什么问题?
答案 0 :(得分:12)
这是因为您在构建完成后添加了标记Automated
(通过标签源或手动)。这不能触发CD发布。 标记应该在构建期间添加(不是构建完成)。因此,您可以在构建定义中使用内联脚本添加 power shell 任务:
Write-Host "##vso[build.addbuildtag]Automatd"
然后在构建完成后触发释放。
答案 1 :(得分:3)
对于将来的读者来说,即使您随时将标签添加到构建中(不仅仅是在构建期间),您现在也可以触发发布。
在将标签添加到现有内部版本时创建发行版。启用此选项后,将标签添加到尚未发布的现有版本中时,将创建发布。这可能会导致将较旧的版本部署到环境中。
答案 2 :(得分:2)
我以不同的方式执行此操作,类似于: How to trigger VSTS build and release when pushing tags?
在我的发布管道中,我向“ refs / tags / ”或“ refs / tags / v ”添加了一个分支过滤器,以进行持续部署触发器,或者在任何其他要过滤操作的地方我的发布管道。好处是,您可以按照自己的喜好在 AFTER 之后应用您的Git标签。这是可选的,但我将Git与GitVersion结合使用。
另外,请注意,Git标签和构建标签并不相同。 Git标签存储在Git存储库中,而Build标签与VSTS / Azure构建摘要相关联。请勿混淆两者。