如何下载特定构建的多份Artifacts至仓库文件夹及Pipeline报错排查
解决DownloadPipelineArtifact任务找不到流水线的问题
错误原因
DownloadPipelineArtifact@2任务的pipeline参数需要填写流水线的显示名称或流水线ID,而非仓库中的yml配置文件名。你填的azure-pipelines.yml是配置文件的名称,不是流水线本身的标识,导致系统无法匹配到目标流水线。
修复步骤
1. 获取目标流水线的正确标识
- 用流水线ID:打开生成Artifacts的流水线页面,URL中的
definitionId值就是流水线ID(例如https://dev.azure.com/你的组织/你的项目/_build?definitionId=456里的456)。 - 用流水线显示名称:在Azure DevOps的流水线列表中,找到目标流水线的名称(创建流水线时设置的名称,和yml文件名可能不同),注意大小写、空格要完全匹配。
2. 修正参数冲突
你同时设置了runVersion: 'latest'和buildNumber: '98',这两个参数互斥:
- 若要下载特定构建(98号):将
runVersion改为'specific'。 - 若要下载最新成功构建:删除
buildNumber参数。
修正后的Pipeline示例
情况1:下载特定构建(98号)
trigger: - main pool: name: Default jobs: - job: DownloadAndCopyArtifacts displayName: 'Download and Copy Artifacts' steps: - task: DownloadPipelineArtifact@2 inputs: artifact: 'MyArtifacts' path: '$(System.ArtifactsDirectory)' runVersion: 'specific' # 对应特定构建 buildType: 'specific' project: 'kvi_sandbox' pipeline: '456' # 替换为目标流水线ID或显示名称 buildNumber: '98' - task: CopyFiles@2 inputs: sourceFolder: '$(System.ArtifactsDirectory)/xyz' contents: '**' targetFolder: '$(Build.SourcesDirectory)/abc/assets/xyz' - task: CopyFiles@2 inputs: sourceFolder: '$(System.ArtifactsDirectory)/pqr' contents: '**' targetFolder: '$(Build.SourcesDirectory)/HYBM_Pipelines_Rebuild/assets/cde'
情况2:下载最新成功构建
trigger: - main pool: name: Default jobs: - job: DownloadAndCopyArtifacts displayName: 'Download and Copy Artifacts' steps: - task: DownloadPipelineArtifact@2 inputs: artifact: 'MyArtifacts' path: '$(System.ArtifactsDirectory)' runVersion: 'latest' # 对应最新构建 buildType: 'specific' project: 'kvi_sandbox' pipeline: '456' # 替换为目标流水线ID或显示名称 - task: CopyFiles@2 inputs: sourceFolder: '$(System.ArtifactsDirectory)/xyz' contents: '**' targetFolder: '$(Build.SourcesDirectory)/abc/assets/xyz' - task: CopyFiles@2 inputs: sourceFolder: '$(System.ArtifactsDirectory)/pqr' contents: '**' targetFolder: '$(Build.SourcesDirectory)/HYBM_Pipelines_Rebuild/assets/cde'
内容的提问来源于stack exchange,提问作者kiran itagi
相关产品推荐
相关产品推荐

