VSTS发布管理:按分支筛选构件来源

13

我正在使用VSTS Build运行CI Build。这个构建定义对于我所有的git分支(master、develop、features等)都是相同的

现在我正在尝试使用VSTS Release Management实现部署流水线。我计划有两个不同的发布定义,一个用于功能分支,另一个用于更加重要的分支,如develop和master。功能分支的发布定义将更加轻量级。

我认为这很基本和常见。事实上,这几乎就是Microsoft文档中记录的释放管理典型用例

对于这两个流水线,我想配置它们使用“持续部署”触发器自动启动。当我选择此触发器时,我必须选择一个工件源。

不幸的是,工件源取决于给定构建定义(我的CI Build)中的所有工件(无论分支如何)。由于我对所有分支使用相同的CI Build定义,因此看起来我不能在“Continuous Deployment”下配置我的两个发布流水线,并仍然使用相同的build定义作为工件源。

有谁知道如何为多个发布定义共享相同的构建定义,但仅为特定分支启动发布吗?有谁知道在定义工件源时如何按分支进行过滤?


我遇到了类似的困境,只不过是由拉取请求创建触发的构建。它正在触发一个发布,但不应该如此。PR 构建是在单独的分支中完成的(例如 refs/pull/16/merge)。我也想按分支过滤发布触发器,这样它只会在 master 被构建时触发。 - Jeff Shepler
你的情况比我描述的还要棘手!我建议你要么在Visual Studio UserVoice上提交它,要么赞同并评论我的条目,链接在这里 - mabead
2个回答

5

配置特定分支的发布部署

  1. 进入 VSTS 中的发布管理
  2. 进入发布定义
  3. 进入触发器选项卡
  4. 添加持续部署触发器
  5. 在这里,您可以选择一个特定的分支(用于分支)

Release trigger definition

功能可用性

  • 该功能在 VSTS 中可用
  • 在 TFS 的本地版本中,它应该在版本 Server 2017.1 中可用,但在版本 2018.1 中仍然不可用

1
请注意,分支筛选器设置仅在源代码依赖于VSTS/TFS存储库时可用。当使用外部来源(如github)时,分支筛选器不会显示/可用。 - Teknokraten
我正在使用2017.2版本,但似乎还没有这个功能。除非它只在Git上可用。 - Erik Funkenbusch
还没有到那里 :( - Alexander Efimov

3

目前在VSTS Release Management中,没有根据分支进行条件部署的方式。

另一种方法是为不同的分支创建单独的BD,并将它们配置为RD的工件来源。

这样做还可以使用户从名称上更清楚地了解工件。


真是遗憾。由于在Git中分支的创建和删除非常频繁,我们只有一个构建定义。这样可以避免开发团队和DevOps团队之间来回设置构建定义。通过为所有分支使用单个BD,当创建/删除分支时,DevOps根本不需要参与。 - mabead
是的,但大多数人都会从一个固定的分支(如主分支或发布分支)发布,开发人员会将自己的更改合并到这些分支中。因此,主分支不会被删除。因此,在不同的分支上使用不同的构建定义是有意义的。你应该提出一个用户反馈来解决这个问题。可能还有其他人也希望拥有相同的功能。如果你能分享你的情况,我可以想出一个解决方法。 - Harshil Lodhi
在我看来,为此创建多个BD是多余和浪费时间的。就我的情况而言(请参见我上面的评论),这并没有帮助。配置分支策略以对PR进行构建,然后您可以要求在主分支更新后进行另一个构建,但您无法指定不同的BD。我想要在主构建触发后发布,而不是在PR构建触发后发布。 - Jeff Shepler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接