首次尝试自动构建和持续部署,以便欢迎任何流程建议/改进。
我有一个包含不同构建定义的存储库。一个用于以下各项:数据库项目,api和web。 (稍后会为etl / reports添加更多内容)每个构建都有一个过滤器,因此只有在特定路径中的代码发生更改时才会构建过滤器。
目前,我有针对每个版本使用持续部署的单独版本。因此,当代码更改时,它会构建自动部署。这有效,但由于依赖性,实际上并不实用。
我要做的是有一个包含所有构建工件的发布定义。然后,如果创建了特定的构建工件(该项目中的某些内容发生了更改),那么部署阶段只会有条件地运行。这样,所有构建/发布都不会每次都运行,但在相关更改时会捆绑在一起。
我正在尝试在部署阶段创建自定义条件的路径,但似乎无法找到一种方法来使其工作。我很感激任何帮助。
答案 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包等)通过添加多个发布工件步骤。
查看包含多个工件的构建的屏幕截图。
将此构建中的工件链接到版本定义,您应该能够部署。