azure-devops - VSTS 发布阶段条件基于多个版本之一
问题描述
首次尝试自动构建和持续部署,因此欢迎任何流程建议/改进。
我有一个具有不同构建定义的存储库。一个用于以下各项:数据库项目、api 和 web。(稍后将为 etl / 报告添加更多内容)每个构建都有一个过滤器,因此只有在特定路径中的代码已更改时才会构建。
目前,我为每个构建使用持续部署的单独版本。因此,当代码更改时,它会构建自动部署。这可行,但由于依赖关系,实际上并不实用。
我要做的是拥有一个包含所有构建工件的发布定义。然后让部署阶段仅在创建特定构建工件时有条件地运行(该项目中的某些内容发生了变化)。这样,所有构建/发布不会每次都运行,而是在有相关更改时捆绑在一起。
我正在尝试在部署阶段创建自定义条件,但似乎无法找到一种方法来完成这项工作。我很感激这方面的任何帮助。
解决方案
我有一个具有不同构建定义的存储库。一个用于以下各项:数据库项目、api 和 web。(稍后将为 etl / 报告添加更多内容)每个构建都有一个过滤器,因此只有在特定路径中的代码已更改时才会构建
路径过滤器不适用于您的情况。
如果你看到微软的 git repo,
他们将所有来自 Windows 和设备组 (WDG) 的代码库都放在一个大型仓库中。每个根文件夹都是一个单独的产品,与其余的完全无关。(例如 Xbox、HoloLens、Windows 操作系统等)。
路径过滤器在这里很有意义,因为如果我将代码 git 推送到 Xbox,我不希望也构建 Hololens 代码。
Web/DB/API 项目都需要一起构建,一起打包,一起部署。
我假设该项目使用 .NET 堆栈。
保持 DB、Web 和 API 项目在同一个解决方案中。创建一个构建解决方案的构建定义,并通过添加多个发布工件步骤创建多个工件(dacpac、webdeploy 包等) 。
查看包含多个工件的构建的屏幕截图。
将此构建中的工件链接到发布定义,您应该能够进行部署。
推荐阅读
- kubernetes - 将文件从 pod 复制到 GCE 存储桶
- bash - 更新 txt 文件的特定行
- r - 将比湿度转换为 R 或 CDO 中的相对湿度以获取网格数据
- google-apps-script - 如何在使用 Google Apps 脚本创建联系人时为其添加标签?
- java - 我们如何更改方法内的公共变量的值?
- r - 循环遍历数据框以提取 R 中值大于阈值的特定对
- regex - Regex for sets of numbers in a string
- javascript - 如何修复 eslint 错误 no-use-before-define
- opencart - 从管理面板更改 Opencart 页面代码是否有任何问题?
- r - Download spedific tab of google sheet in R