【问题标题】:Multiple Release Pipelines多个发布管道
【发布时间】:2020-09-10 06:31:54
【问题描述】:
我是 Azure DevOps 的新手,需要您的意见。 Azure 中是否可以有多个发布管道和单个构建管道?根据最佳实践,如果在一个解决方案中有多个项目,最好每个项目有一个构建管道,然后创建相应的发布管道。现在我从开发人员那里收到信息,他们的应用程序是如此集成,以至于很难将项目分离到他们各自的解决方案中。他们建议为各种项目的 Windows 服务和 Web 服务创建多个发布管道。
还有可能吗?
【问题讨论】:
标签:
azure-devops
azure-pipelines
【解决方案1】:
Azure 中是否可以有多个发布管道和单个构建管道?
答案是肯定的。
构建管道和发布管道之间没有一一对应的关系。我们可以有多个发布管道和单个构建管道,或者有多个构建管道和单个发布管道。这完全取决于您的需求。
但是我们在处理这些特殊情况的时候,需要非常清楚构建管道的输出和工件的生成或者发布管道的输入和工件的部署,否则容易造成混乱。
针对您的情况,我创建了一个简单的示例来解释该过程。
在构建管道中,我的构建管道中有两个项目。通过 Visual Studio 构建任务构建解决方案(或所有项目),然后我们需要为每个项目创建两个工件:
然后发布具有不同工件名称的构建工件:
所以我们为一个构建管道获得了两个工件:
最后但同样重要的是,我们为 Windows 服务和 Web 服务创建了多个发布管道(或者我们可以创建多个 stages)。发布管道会从构建管道中下载两个工件,我们只需将对应项目的工件部署到对应的服务器,而不是将所有工件部署到服务器。
例如,如果我们只部署project1中的artifact,我们只需要选择artifact,比如:
工件来源应该是:
$(System.ArtifactsDirectory)\_TestBuild\drop1