是否可能有一个包含多个工件的发布管道,这些工件会有条件地触发各个阶段。
示例:
(Build Artifact 1)
构建Web
(Build Artifact 2)
构建Identity
设置发布管道时,我会创建一个管道并添加
(Build Artifact 1)
-> Web Stage
(Build Artifact 2)
-> Identity Stage
同时设置了这两个工件,并会自动触发发布并将其设置为After Release
我遇到的问题是,当我将(Build Artifact 2)
的构建排队时,两个阶段都将部署。而且我只希望Identity Stage
进行部署,反之亦然。
我希望所有内容都在一个管道中的原因是,因为我所有的工件都包含在一个管道中,我知道如果创建单独的管道,我可以做到这一点。
答案 0 :(得分:0)
更多地考虑您的情况,让第三个生成CI的工件(在其他2个CI构建的构建完成时触发)可能更干净(请阅读:没有失败的阶段)。中介构建将根据触发原因进行标记(即Web
或Identity
)。此构建的工件将是上游工件的重新打包(使用下载工件任务),从而使您的发布管道可以使用一个可能具有2个不同标记值的工件。这使您在预释放条件下的伪像过滤器有更多的牙齿。
原始答案
对此我可能是错的,但是我认为您需要根据RELEASE_TRIGGERINGARTIFACT_ALIAS
中的值来运行各个阶段。
可能有几种方法可以做到这一点,例如
可以使用$(Release.TriggeringArtifact.Alias)
在管道上访问变量,也可以使用$env:RELEASE_TRIGGERINGARTIFACT_ALIAS
在powershell中访问变量。
我不确定您是否已经在部署前的条件中在舞台上使用了Artifact筛选器,但这可能是另一种方式,并不是那么简单。我必须将一个测试管道放在一起,然后尝试一下。