azure-devops - 具有多个工件和阶段的 Azure DevOps 发布管道

标签 azure-devops azure-pipelines-release-pipeline azure-devops-artifacts

是否可以拥有一个包含多个工件的发布管道,这些工件将有条件地触发不同的阶段。

示例:

BuildPipelineAAppRepoDev 分支构建 /PathA 并发布工件 ArtifactAArtifactA 应部署到阶段 A

BuildPipelineBAppRepoDev 分支构建 /PathB 并发布工件 ArtifactB强>。 ArtifactB 应部署到阶段 B

这两个工件都在一个发布管道中,我遇到的问题是当我对 BuildPipelineA 的构建进行排队时,成功构建后,将创建发布管道并将 ArtifactA 部署到阶段 A,工件 B(最后一个成功的构建工件)被部署到阶段 B。

Example Pipeline Image

我想要实现的是,由于 BuildPipelineB 未触发,并且没有发布最新的Artifact B,因此不应将其部署到阶段 BArtifactA 触发释放时,反之亦然

最佳答案

What I am trying to achieve is, since BuildPipelineB is not triggered and no latest Artifact B is published, it should not be deployed to stage B when ArtifactA triggered the release and vice versa

根据您对情况的描述(同一仓库,同一分支),恐怕没有这样的内置功能可以直接满足您的要求。

要解决此问题,您可以在阶段 -> 作业中设置条件。

可以使用这个变量来进行判断:RELEASE.TRIGGERINGARTIFACT.ALIAS

它代表触发发布的工件名称。

这是一个例子:

发布阶段:

enter image description here

条件:eq(variables['RELEASE.TRIGGERINGARTIFACT.ALIAS'], '_PipelineA')

enter image description here

当管道A触发管道时,它将运行Stage1中的代理作业,并跳过Stage2中的代理作业。

关于azure-devops - 具有多个工件和阶段的 Azure DevOps 发布管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69104964/

相关文章:

azure - Azure Devops 发布管道中针对不同分支的多个计划

使用构建工件以编程方式部署 Web 应用程序 zip 包的 Azure Arm 模板

azure - 替换 Azure Web App 中所有 .config 文件中的 token

azure - 如何在 Azure DevOps 中导入任务组

用于运行构建或管道的 Azure REST API

azure-devops - Visual Studio 团队服务构建 .net core 1.1

tfs - 即使使用多个项目,TFS 中的工作项 ID 是否也是唯一的?