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

Azure devops 为部署管道(YAML)选择工件,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我有一个基于GUI的发布管道,它部署从构建管道生成的工件。 我可以选择需要部署的工件版本 如何使用YAML管道实现同样的效果?您可以将任务与runId输入一起使用: # Download an artifact named 'WebApp' from a specific build run to 'bin' in $(Build.SourcesDirectory) - task: DownloadPipelineArtifact@2 inputs: source: 'specif

我有一个基于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
您可以将任务与
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 < /代码>”,则可以考虑通过<代码>队列变量作为工作。p> 例如:

- task: DownloadPipelineArtifact@2
  inputs:
    source: 'specific'
    artifact: 'drop'
    path: $(Build.SourcesDirectory)/bin
    project: 'AndroidBuild'
    pipeline: 12
    runVersion: 'specific'
    runId: $(buildid)
在上述定义中,
buildid
是变量,您可以在队列时间配置其值:

当您想要选择其他工件时,不需要对管道进行任何修改,只需在队列时间传递值即可。但是,正如您所看到的,它仍然需要硬代码



如果我们可以选择而不是记住并硬编码值,这将是一个很好的特性。您可以向我们提出您的想法,我们的产品团队会定期检讨它,并考虑将它纳入我们的发展路线图。

< P>这里我同意@ Shayki,我知道这是非常方便的选择相应的工件根据实际需求,但你想要的不支持YAML直到现在。 因为,问题是,它的配置时间是构建执行完成后的,而您使用的是经典UI版本,如上图所示。此时,系统可以检测并显示工件历史

但是,当您使用
multi-stage
配置管道时,构建和发布过程将组合在一起。我们正在开发以丰富YAML管道的功能,但到目前为止,我们还没有扩展类似于从构建历史收集所有工件信息并在YAML配置面板中显示它们这样的功能

因此,如果您现在想通过选择工件实现类似的功能,那么硬编码构建编号是必要的


如果您不想在YAML定义中使用硬代码“<代码> RunID < /代码>”,则可以考虑通过<代码>队列变量作为工作。p> 例如:

- task: DownloadPipelineArtifact@2
  inputs:
    source: 'specific'
    artifact: 'drop'
    path: $(Build.SourcesDirectory)/bin
    project: 'AndroidBuild'
    pipeline: 12
    runVersion: 'specific'
    runId: $(buildid)
在上述定义中,
buildid
是变量,您可以在队列时间配置其值:

当您想要选择其他工件时,不需要对管道进行任何修改,只需在队列时间传递值即可。但是,正如您所看到的,它仍然需要硬代码



如果我们可以选择而不是记住并硬编码值,这将是一个很好的特性。你可以向我们提出你的想法,我们的产品团队会定期回顾它,并考虑把它纳入我们的开发路线图。我需要从屏幕截图上的列表中进行选择,但不要硬编码数字,因此我认为这是不可能的:/这不是一个解决方案。我需要从屏幕截图上的列表中选择,但不要硬编码数字,因此我认为这是不可能的:/n不,没有必要在同一YAML中包含构建和发布描述。我相信,在两个文件中分离构建和发布管道是可以的。在这种情况下,从相关构建管道获取工件并在UI中显示应该不会有问题。我创建了该功能,请投票:@Evgeniy,投票。是的,它们可以分为两个文件,例如使用模板。但无论如何,最后,您需要将它们合并到一个调用文件中。这是YAML到目前为止的局限性。但是,相信我们,我们正在努力扩展和丰富YAML功能,这样它就不会与UI有太大的不同。不,不需要在同一个YAML中有构建和发布描述。我相信,在两个文件中分离构建和发布管道是可以的。在这种情况下,从相关构建管道获取工件并在UI中显示应该不会有问题。我创建了该功能,请投票:@Evgeniy,投票。是的,它们可以分为两个文件,例如使用模板。但无论如何,最后,您需要将它们合并到一个调用文件中。这是YAML到目前为止的局限性。但是,相信我们,我们正在努力扩展和丰富YAML特性,这样它就不会与UI有太大的不同。