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

VSTS Release Phase Condition Based Off From One of Many Builds

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

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

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

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

我正在尝试在部署阶段创建自定义条件,但似乎无法找到实现此目的的方法。感谢您对此提供的任何帮助。

I have a repository with different build definitions. One for each of the following: database project, api, and web. (Will add more later for etl / reports) Each build has a filter so it only builds if code in a specific path has been changed

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

如果您看到 Microsoft's git repo,

他们将 Windows 和 Devices Group (WDG) 的所有代码库都放在一个大仓库中。每个根文件夹都是一个单独的产品,与其他文件夹完全无关。 (例如 Xbox、HoloLens、Windows OS 等)。

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


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

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

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

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

Link 从这个构建到发布定义的工件,你应该能够部署。