DownloadPipelineArtifact@2 - 下载管道项目 v2 任务

使用此任务从此管道中的先前阶段或从另一管道下载管道工件。

注意

有关详细信息(包括 Azure CLI 命令),请参阅下载工件

使用此任务从此管道中的先前阶段或从另一管道下载管道工件。

重要

此任务仅在 Azure DevOps Services 上受支持。 如果在 Azure DevOps Server 上使用,则如果使用 Azure DevOps Server 或 TFS 2018,则会收到类似于Pipeline Artifact Task is not supported in on-premises. Please use Build Artifact Task instead.“使用下载生成项目”的错误消息。

语法

# Download Pipeline Artifacts v2
# Download build and pipeline artifacts.
- task: DownloadPipelineArtifact@2
  inputs:
    buildType: 'current' # 'current' | 'specific'. Alias: source. Required. Download artifacts produced by. Default: current.
    #project: # string. Required when source == specific. Project. 
    #definition: # string. Alias: pipeline. Required when source == specific. Build pipeline. 
    #specificBuildWithTriggering: false # boolean. Alias: preferTriggeringPipeline. Optional. Use when source == specific. When appropriate, download artifacts from the triggering build. Default: false.
    #buildVersionToDownload: 'latest' # 'latest' | 'latestFromBranch' | 'specific'. Alias: runVersion. Required when source == specific. Build version to download. Default: latest.
    #branchName: 'refs/heads/master' # string. Alias: runBranch. Required when source == specific && runVersion == latestFromBranch. Branch name. Default: refs/heads/master.
    #pipelineId: # string. Alias: runId | buildId. Required when source == specific && runVersion == specific. Build. 
    #tags: # string. Optional. Use when source == specific && runVersion != specific. Build Tags. 
    #allowPartiallySucceededBuilds: false # boolean. Optional. Use when source == specific && runVersion != specific. Download artifacts from partially succeeded builds. Default: false.
    #allowFailedBuilds: false # boolean. Optional. Use when source == specific && runVersion != specific. Download artifacts from failed builds. Default: false.
    #artifactName: # string. Alias: artifact. Artifact name. 
    #itemPattern: '**' # string. Alias: patterns. Matching patterns. Default: **.
    targetPath: '$(Pipeline.Workspace)' # string. Alias: path | downloadPath. Required. Destination directory. Default: $(Pipeline.Workspace).

输入

buildType - 下载生成的项目
输入别名: sourcestring. 必需。 允许的值: current (当前运行) 、 specific (特定运行) 。 默认值:current

下载当前管道运行或特定管道运行生成的项目。


project - 项目
string. 当 source == specific 时,需要此选项。

指定要从中下载管道项目的项目名称或 GUID。


definition - 生成管道
输入别名: pipelinestring. 当 source == specific 时,需要此选项。

管道的定义 ID。 在正在运行的管道中, definitionId 可以在 System.DefinitionId 变量中找到 。 definitionId还可以从 Azure DevOps 门户的管道概述页上的 URL 中检索 。 在以下 URL 示例中, definitionId 为 78: https://dev.azure.com/fabrikam-inc/FabrikamFiber/_build?definitionId=78&_a=summary。 若要从特定管道定义下载项目,请 definitionId 从该管道捕获 ,并将其指定为 pipeline 参数。


specificBuildWithTriggering - 适当时,请从触发生成下载项目。
输入别名: preferTriggeringPipelineboolean. 可选。 在 时 source == specific使用 。 默认值:false

如果选中,任务将从触发生成下载项目。 如果没有从指定管道触发生成,则任务将从以下选项中指定的生成下载项目。


buildVersionToDownload - 要下载的内部版本
输入别名: runVersionstring. 当 source == specific 时,需要此选项。 允许的值: latestlatestFromBranch (来自特定分支的 Latest 和指定的生成标记) , specific (特定版本) 。 默认值:latest

指定要下载的内部版本。


branchName - 分支名称
输入别名: runBranchstring. 当 source == specific && runVersion == latestFromBranch 时,需要此选项。 默认值:refs/heads/master

指定分支/引用名称上的筛选器。 例如:refs/heads/develop


pipelineId - 建立
输入别名: runId | buildIdstring. 当 source == specific && runVersion == specific 时,需要此选项。

从中下载项目的管道运行的标识符。 在正在运行的管道中, buildId 可以在 Build.BuildId 变量中找到 。 buildId还可以从 Azure DevOps 门户中管道运行摘要页上的 URL 中检索 。 在以下 URL 示例中, buildId 为 1088: https://dev.azure.com/fabrikam-inc/FabrikamFiber/_build/results?buildId=1088&view=results。 若要从特定管道运行下载项目,请从该运行中捕获 buildId ,并将其指定为 buildId 参数。


tags - 生成标记
string. 可选。 在 时 source == specific && runVersion != specific使用 。

任务用于返回带标记的生成的标记的逗号分隔列表。 不返回未标记的内部版本。


allowPartiallySucceededBuilds - 从部分成功的生成下载项目。
boolean. 可选。 在 时 source == specific && runVersion != specific使用 。 默认值:false

指定生成任务下载项目是成功还是部分成功。


allowFailedBuilds - 从失败的生成下载项目。
boolean. 可选。 在 时 source == specific && runVersion != specific使用 。 默认值:false

如果选中,则无论生成成功还是失败,生成任务都会下载项目。


artifactName - 项目名称
输入别名: artifactstring.

指定要下载的项目的名称。 如果值留空,则任务将下载与管道运行关联的所有项目。


itemPattern - 匹配模式
输入别名: patternsstring. 默认值:**

限制已下载文件的文件匹配模式。 该值可以是一个或多个以新行分隔的文件匹配模式。 详细了解 文件匹配模式


targetPath - 目标目录
输入别名: path | downloadPathstring. 必需。 默认值:$(Pipeline.Workspace)

指定将下载项目的代理计算机上的相对路径或绝对路径。 如果通过) 保留空项目名称 (应用多下载选项,则将为每个下载创建一个子目录。 详细了解 Azure Pipelines 中的项目


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

此任务定义以下 输出变量,可在下游步骤、作业和阶段中使用。

BuildNumber
存储管道项目源的生成号。

由于向后兼容性,此变量返回 BuildId

详细了解 生成变量

此任务定义以下 输出变量,可在下游步骤、作业和阶段中使用。

BuildNumber
存储管道项目源的生成号。

注解

重要

此任务仅在 Azure DevOps Services 上受支持。 如果在 Azure DevOps Server 上使用,则如果使用 Azure DevOps Server 或 TFS 2018,则会收到类似于Pipeline Artifact Task is not supported in on-premises. Please use Build Artifact Task instead.“使用下载生成项目”的错误消息。

使用此任务从此管道中的先前阶段或从另一管道下载管道工件。 默认情况下,工件会下载到 $(Pipeline.Workspace)。 如果未指定项目名称,则将为每个下载的项目创建一个子目录。 可以使用 文件匹配模式 来限制要下载的文件。

publishdownload 关键字是用于发布下载管道项目的任务快捷方式。

如何查找要从中下载工件的管道的 ID?

查找特定管道定义的 definitionId

在正在运行的管道中 definitionId ,可以在 System.DefinitionId 变量中找到 。 definitionId还可以从 Azure DevOps 门户的管道概述页上的 URL 中检索 。 在以下 URL 示例中, definitionId 为 78: https://dev.azure.com/fabrikam-inc/FabrikamFiber/_build?definitionId=78&_a=summary。 若要从特定管道定义下载项目,请 definitionId 从该管道捕获 ,并将其指定为 pipeline 参数。

查找特定管道运行的 buildId

从中下载项目的管道运行的标识符。 在正在运行的管道中, buildId 可以在 Build.BuildId 变量中找到 。 buildId还可以从 Azure DevOps 门户中管道运行摘要页上的 URL 中检索 。 在以下 URL 示例中, buildId 为 1088: https://dev.azure.com/fabrikam-inc/FabrikamFiber/_build/results?buildId=1088&view=results。 若要从特定管道运行下载项目,请从该运行中捕获 buildId ,并将其指定为 buildId 参数。

示例

下载特定工件

# Download an artifact named 'WebApp' to 'bin' in $(Build.SourcesDirectory)
- task: DownloadPipelineArtifact@2
  inputs:
    artifactName: 'WebApp'
    targetPath: $(Build.SourcesDirectory)/bin

从特定项目/管道下载工件

# Download artifacts from a specific pipeline.
- task: DownloadPipelineArtifact@2
  inputs:
    buildType: 'specific'
    project: 'FabrikamFiber'
    definition: 12
    buildVersionToDownload: 'latest'

从特定分支下载工件

# Download artifacts from a specific branch with a tag
- task: DownloadPipelineArtifact@2
  inputs:
    buildType: 'specific'
    project: 'FabrikamFiber'
    definition: 12
    buildVersionToDownload: 'latestFromBranch'
    branchName: 'refs/heads/master'
    tags: 'testTag'

从特定生成运行下载工件

# Download an artifact named 'WebApp' from a specific build run to 'bin' in $(Build.SourcesDirectory)
- task: DownloadPipelineArtifact@2
  inputs:
    buildType: 'specific'
    artifactName: 'WebApp'
    targetPath: $(Build.SourcesDirectory)/bin
    project: 'FabrikamFiber'
    definition: 12
    buildVersionToDownload: 'specific'
    pipelineId: 40

要求

要求 说明
管道类型 YAML,经典内部版本,经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置的变量 任意
代理版本 2.164.1 或更高版本
任务类别 实用工具