繁体   English   中英

为部署管道 (YAML) 选择工件

[英]Select artifact for deployment pipeline (YAML)

我有基于 GUI 的发布管道,用于部署从构建管道生成的工件。 我可以选择我需要部署的工件版本。

工件版本选择

我如何使用 YAML 管道实现相同的目标?

您可以使用带有runId输入的下载管道工件任务:

# Download an artifact named 'WebApp' from a specific build run to 'bin' in $(Build.SourcesDirectory)
- task: DownloadPipelineArtifact@2
  inputs:
    source: 'specific'
    artifact: 'WebApp'
    path: $(Build.SourcesDirectory)/bin
    project: 'FabrikamFiber'
    pipeline: 12
    runVersion: 'specific'
    runId: 40

在这里我同意@Shayki,我知道根据实际需求选择相应的神器非常方便,但是YAML直到现在都不支持您想要的。

因为,麻烦的是,它配置的时间是在构建执行完成后,而您使用具有经典 UI 的发布,如上图所示。 此时,系统可以检测并显示工件历史。

但是,当您使用multi-stage配置管道时,构建和发布过程结合在一起。 我们正在开发以丰富 YAML 管道的功能,但直到现在,我们还没有扩展该功能,例如从构建历史中收集所有工件信息并在 YAML 配置面板中显示它们。

因此,如果您现在想通过选择工件实现类似的功能,则必须对内部版本号进行硬编码。


如果您不想在 YAML 定义中对runid进行硬编码,您可以考虑传递queue variable作为解决方法。

例如:

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

在上面的定义中, buildid是变量,你可以在排队时配置它的值:

在此处输入图片说明

当您想要选择另一个工件时,这不需要您对管道进行任何修改,只需在排队时传递值即可。 但是,如您所见,它仍然需要硬编码。


如果我们可以选择而不是记住并硬编码值,那将是一个很棒的功能。 您可以在我们的官方论坛提出您的想法,我们的产品团队会定期审核并考虑将其纳入我们的开发路线图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM