VSTS发布阶段条件基于多个构建之一

时间:2018-04-28 02:43:14

标签: azure-devops azure-pipelines-release-pipeline

首次尝试自动构建和持续部署,以便欢迎任何流程建议/改进。

我有一个包含不同构建定义的存储库。一个用于以下各项:数据库项目,api和web。 (稍后会为etl / reports添加更多内容)每个构建都有一个过滤器,因此只有在特定路径中的代码发生更改时才会构建过滤器。

目前,我有针对每个版本使用持续部署的单独版本。因此,当代码更改时,它会构建自动部署。这有效,但由于依赖性,实际上并不实用。

我要做的是有一个包含所有构建工件的发布定义。然后,如果创建了特定的构建工件(该项目中的某些内容发生了更改),那么部署阶段只会有条件地运行。这样,所有构建/发布都不会每次都运行,但在相关更改时会捆绑在一起。

https://imgur.com/a/bYM8mVj

我正在尝试在部署阶段创建自定义条件的路径,但似乎无法找到一种方法来使其工作。我很感激任何帮助。

Pipeline

1 个答案:

答案 0 :(得分:1)

  

我有一个包含不同构建定义的存储库。每个人一个   以下内容:数据库项目,api和web。 (稍后会添加更多   for etl / reports)每个构建都有一个过滤器,因此它只在代码时构建   在特定路径中已更改

在您的情况下不使用路径过滤器。

如果您看到Microsoft's git repo

他们拥有来自Windows和设备组(WDG)的所有代码库,在一个大型仓库中。每个根文件夹都是一个单独的产品,与其他产品完全无关。 (例如,Xbox,HoloLens,Windows OS等)。

路径过滤器在这里有意义,因为如果我将代码推送到Xbox,我也不希望构建Hololens代码。

Web / DB / API项目都需要一起构建,打包在一起并一起部署。

我假设该项目使用.NET堆栈。

保持DB,Web和API项目在同一解决方案中。创建一个构建定义,构建解决方案并创建多个工件(dacpac,webdeploy包等)通过添加多个发布工件步骤

查看包含多个工件的构建的屏幕截图。

Sample build definition with multiple artifacts

将此构建中的工件链接到版本定义,您应该能够部署。