【发布时间】:2020-01-29 14:58:49
【问题描述】:
【问题讨论】:
标签: azure-devops azure-pipelines
【问题讨论】:
标签: azure-devops azure-pipelines
这里我同意@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 是变量,你可以在排队时配置它的值:
当您想选择另一个工件时,这不需要您对管道进行任何修改,只需在排队时传递值。但是,如您所见,它仍然需要硬编码。
如果我们可以选择而不是记住和硬编码值,那将是一个很棒的功能。您可以向我们的official forum 提出您的想法,我们的产品团队会定期对其进行审核并考虑将其纳入我们的开发路线图。
【讨论】:
您可以将Download Pipeline Artifacts 任务与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
【讨论】: