首页 > 解决方案 > VSTS 发布阶段条件基于多个版本之一

问题描述

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

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

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

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

管道

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

VSTS 部署阶段

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

解决方案


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

路径过滤器不适用于您的情况。

如果你看到微软的 git repo

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

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


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

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

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

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

具有多个工件的示例构建定义

将此构建中的工件链接到发布定义,您应该能够进行部署。


推荐阅读