是否可以拥有一个包含多个工件的发布管道,这些工件将有条件地触发不同的阶段。
示例:
BuildPipelineA 从 AppRepo、Dev 分支构建 /PathA 并发布工件 ArtifactA强>。 ArtifactA 应部署到阶段 A。
BuildPipelineB 从 AppRepo、Dev 分支构建 /PathB 并发布工件 ArtifactB强>。 ArtifactB 应部署到阶段 B。
这两个工件都在一个发布管道中,我遇到的问题是当我对 BuildPipelineA 的构建进行排队时,成功构建后,将创建发布管道并将 ArtifactA 部署到阶段 A,工件 B(最后一个成功的构建工件)被部署到阶段 B。
我想要实现的是,由于 BuildPipelineB 未触发,并且没有发布最新的Artifact B,因此不应将其部署到阶段 B 当 ArtifactA 触发释放时,反之亦然
最佳答案
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。
它代表触发发布的工件名称。
这是一个例子:
发布阶段:
条件:eq(variables['RELEASE.TRIGGERINGARTIFACT.ALIAS'], '_PipelineA')
当管道A触发管道时,它将运行Stage1中的代理作业,并跳过Stage2中的代理作业。
关于azure-devops - 具有多个工件和阶段的 Azure DevOps 发布管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69104964/