R4n*_*c1d 5 azure-devops azure-pipelines-release-pipeline
是否可能有一个包含多个工件的发布管道,这些工件会有条件地触发各个阶段。
例:
(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部署,反之亦然。
我希望所有内容都在一个管道中的原因是因为我的所有工件都包含在一个管道中,我知道如果我创建单独的管道可以做到这一点。
进一步考虑您的情况,让第三个工件生成 CI 并在其他 2 个 CI 构建完成时触发,可能会更干净(阅读:没有失败阶段)。该中介构建将根据触发原因(即Web或Identity)进行标记。此构建的工件将是上游工件的重新打包(使用下载工件任务),允许您的发布管道使用可能具有 2 个不同标签值的一个工件。这使您的伪像过滤器在预发布条件下具有更多的牙齿。
Web_CI
\ #Web - - Web Development - - Web Production
- -\ /
> = WebIdSwitch_CI - - <
- -/ \
/ #Id - - Id Development - - Id Production
Id_CI
Run Code Online (Sandbox Code Playgroud)
原答案
我对此可能是错的,但我认为您需要根据 中的值运行阶段RELEASE_TRIGGERINGARTIFACT_ALIAS。
可能有几种方法可以做到这一点,例如
可以使用管道上的变量$(Release.TriggeringArtifact.Alias)或在 powershell 中使用 来访问该变量$env:RELEASE_TRIGGERINGARTIFACT_ALIAS。
我不确定您是否已经在阶段上使用 Artifact Filters 作为预部署条件的一部分,但这可能是另一种方式,而不是一种黑客攻击。我必须将测试管道放在一起并进行尝试。
| 归档时间: |
|
| 查看次数: |
2177 次 |
| 最近记录: |