在Azure DevOps多阶段管道中部署预先存在的工件

时间:2020-06-03 12:02:37

标签: azure-devops multistage-pipeline

在Azure DevOps经典管道中,您可以具有用于创建工件的构建管道和用于对其进行部署的发布管道。这意味着只要存储存储的现有工件就可以部署,只需启动发布管道并选择工件的版本即可(典型用法:将当前部署的工件回滚到以前的版本)

如何在多阶段管道中实现这一目标?有什么办法只启动部署阶段并选择要部署的工件吗?

致谢

2 个答案:

答案 0 :(得分:0)

如何在多阶段管道中实现这一目标?有什么办法只启动部署阶段并选择要部署的工件吗?

实际上,根据实际需求选择预先存在的工件非常方便,但是到目前为止,您想要的尚不支持在多阶段管道中。

此请求已报告给MS产品团队:

Select artifacts in YAML release pipeline

此功能已在上次冲刺中添加:

Pipeline resource version picker in the create run dialogue

但是,据我测试,似乎此功能尚未在所有区域中部署:

enter image description here

如果未在您的区域中部署它,则可以尝试将任务Download Pipeline Artifacts taskrunId输入一起使用:

- task: DownloadPipelineArtifact@2
  inputs:
    source: 'specific'
    artifact: 'drop'
    path: $(Build.SourcesDirectory)/bin
    project: 'AndroidBuild'
    pipeline: 12
    runVersion: 'specific'
    runId: $(buildid)

然后在对构建进行排队时使用传递队列变量buildid

enter image description here

希望这会有所帮助。

答案 1 :(得分:0)

这可以通过有两个管道来完成。您的构建的一个管道,您的管道在其中生成工件并为您的发布阶段创建另一个管道。在发布管道中,您可以将资源设置为指向另一个构建或管道。您可以在其中使用之前生成的工件(包括较旧的构建版本)到部署阶段。

见: YAML Resources

您的发布 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

然而,将它们分开只会导致移动开销和维护。