【发布时间】:2020-09-22 03:00:12
【问题描述】:
在 Azure DevOps 经典管道中,您可以拥有一个用于创建工件的构建管道和一个用于部署它的发布管道。这意味着可以部署任何存储的现有工件,只需启动发布管道并选择工件的版本(典型用法:将当前部署的工件回滚到以前的版本)
如何在多阶段管道中实现这一点?任何方式只启动部署阶段选择要部署的工件?
问候
【问题讨论】:
标签: azure-devops multistage-pipeline
在 Azure DevOps 经典管道中,您可以拥有一个用于创建工件的构建管道和一个用于部署它的发布管道。这意味着可以部署任何存储的现有工件,只需启动发布管道并选择工件的版本(典型用法:将当前部署的工件回滚到以前的版本)
如何在多阶段管道中实现这一点?任何方式只启动部署阶段选择要部署的工件?
问候
【问题讨论】:
标签: azure-devops multistage-pipeline
如何在多阶段管道中实现这一点?任何方式只启动部署阶段选择要部署的工件?
确实,这样可以根据实际需求选择已有的artifact很方便,但是Multi-Stage pipeline目前不支持你想要的。
此请求已报告给 MS 产品团队:
Select artifacts in YAML release pipeline
此功能已在上个 sprint 中添加:
Pipeline resource version picker in the create run dialogue
然而,在我的测试中,似乎这个功能并没有在所有地区部署:
如果它没有部署在您所在的地区,您可以尝试使用任务Download Pipeline Artifacts task 和runId 输入:
- task: DownloadPipelineArtifact@2
inputs:
source: 'specific'
artifact: 'drop'
path: $(Build.SourcesDirectory)/bin
project: 'AndroidBuild'
pipeline: 12
runVersion: 'specific'
runId: $(buildid)
然后在我们排队构建时使用传递队列变量buildid:
希望这会有所帮助。
【讨论】:
这可以通过两个管道来完成。一个用于构建的管道,您的管道在其中生成工件并为您的发布阶段创建另一个管道。在发布管道中,您可以将资源设置为指向另一个构建或管道。您可以在其中使用您之前生成的工件(包括较旧的构建版本)到部署阶段。
您的发布 YAML 管道可以指定它需要哪些资源。您可以指定现有构建或其他管道。
resources:
pipelines:
- pipeline: SmartHotel-resource # identifier for the resource (used in pipeline resource variables)
source: SmartHotel-CI # name of the pipeline that produces an artifact
但是,将它们分开只会导致移动开销和维护。
【讨论】: