[英]Download Artifact from other pipeline in Multistage YAML
在 azure devops 中,我试图通过 yaml 创建多阶段发布定义。 通过经典编辑器完成构建,并将工件上传到 azure 管道。 所以我想访问一个特定的工件进行部署
- task: DownloadPipelineArtifact@2 displayName: 'Download Pipeline Artifact' inputs: buildType: specific project: 'vvxxxxxx-vxxv-xxxv-vxxx-xxxxxxvvxxvv' definition: 5 buildVersionToDownload: specific pipelineId: 'SSE_XXXXXXXXXXXXXXXXXX_Auto-import_dev_20200423.4' artifactName: Service targetPath: '$(Pipeline.Workspace)'
当我使用任务“下载管道工件”通过经典版本尝试它时它是成功的,但是当我通过 yaml 尝试它时它失败并出现错误“##[error]Run Id is not valid: SSE_XXXXXXXXXXXXXXXXXX_Auto-import_dev_20200423.4”如果有任何其他方式从管道中获取工件会很有帮助,而且我也想让它动态化,而不是硬编码 pipelineId。
从多级 YAML 中的其他管道下载工件
pipelineId
的值应该是您要下载的构建管道的 ID,而不是构建管道的名称/标题。
找到您要下载的构建管道,点击您要下载的构建记录,您可以在浏览器的web地址栏中看到:
我也想让它动态化,而不是硬编码 pipelineId。
如果您不想在 YAML 定义中对pipelineId/runid
进行硬编码,您可以考虑传递队列变量作为解决方法。
例如:
- task: DownloadPipelineArtifact@2
inputs:
source: 'specific'
artifact: 'drop'
path: $(Build.SourcesDirectory)/bin
project: 'AndroidBuild'
pipeline: 12
runVersion: 'specific'
runId: $(buildid)
在上面的定义中, buildid
是变量,你可以在队列时配置它的值:
当您想选择另一个runId时,这不需要您对管道进行任何修改,只需在排队时传递值即可。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.