多个工件源上的 VSTS 发布触发器不关心分支规范

Posted

技术标签:

【中文标题】多个工件源上的 VSTS 发布触发器不关心分支规范【英文标题】:VSTS Release triggers on multiple artifact sources won't care for branch specification 【发布时间】:2017-01-23 11:20:35 【问题描述】:

Microsoft 增加了仅为特定分支定义 VSTS 发布触发器的功能。它在Features Timeline 上列为“发布管理编排改进 - 分支条件、多个工件触发器”。

我们也使用分支和 PR 构建,但我们只从 Git ma​​ster 分支发布代码。在过去,我们甚至不得不为此创建一个custom extension。

但是,如果 多个 构建被带到一个版本中,它仍然无法按预期工作。考虑这种情况:

    我们有组件 A 和组件 B,它们都为 master 分支以及其他分支和 PR 生成构建。 我们有一个发布定义,其中包含 2 个触发器,仅用于主分支的两个构建。 在 Artifacts 选项卡上,我们添加了带有“最新”选项的两个构建,因为其他两个选项是手动的,因此不符合持续部署原则。 当为 master 构建组件 A 时,它会触发一个 Release,该 Release 会从组件 A 的最新 master build 中获取工件。 但是为组件 B 构建的版本可以用于任何分支\PR,无论是最新的。

有什么方法可以确保只考虑特定分支构建 发布(在我的情况下是主版本)?

请看下面的截图。

1) 为 2 个构建配置触发器。

2) 采用的工件来源是最新版本

3) 其他分支仍会触发一些发布(在这种情况下不是 master):

【问题讨论】:

停止为您的 PR 生成发布工件。如果您正在使用 Azure DevOps 或看到 VSTS 中的新选项,请参阅我在 this question 上的回答。 【参考方案1】:

您想要的是默认版本为“来自特定分支的最新版本”的工件的能力

此功能目前正在为选定的一组客户进行预览,不久将面向更广泛的受众发布。

【讨论】:

太棒了!我该如何注册? :) 我不知道,但我想你很快就会明白的。大部分时间不到 2-3 周。

以上是关于多个工件源上的 VSTS 发布触发器不关心分支规范的主要内容,如果未能解决你的问题,请参考以下文章

在VSTS上发布释放触发器,以运行端到端测试套件

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

VSTS Drop Single Artifact - 发布到 Azure 多个网站

TeamCity 构建链触发

VSTS 发布自动部署完成失败警报

VSTS:如何使用 REST API 获取由构建触发的发布 ID