答案 0 :(得分:0)
您可以在runId
输入中使用Download Pipeline Artifacts任务:
# 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
答案 1 :(得分:0)
在这里,我同意@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提出您的想法,我们的产品团队会定期对其进行审核,并考虑将其纳入我们的开发路线图中。