发布生成项目任务

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

注意

此任务已弃用。 建议改用 管道项目 任务。 管道项目任务的 当前版本 可更好地缩放,允许并行上传,并且速度更快。

在生成管道中使用此任务将生成项目发布到 Azure Pipelines、TFS 或文件共享。

需求

YAML 代码片段

# Publish build artifacts
# Publish build artifacts to Azure Pipelines or a Windows file share
- task: PublishBuildArtifacts@1
  inputs:
    #pathToPublish: '$(Build.ArtifactStagingDirectory)' 
    #artifactName: 'drop' 
    #publishLocation: 'Container' # Options: container, filePath
    #targetPath: # Required when publishLocation == FilePath
    #parallel: false # Optional
    #parallelCount: # Optional
    #fileCopyOptions: #Optional
    #storeAsTar: false # Optional

参数

参数 说明
pathToPublish
要发布的路径
(必需)
要发布的文件夹或文件路径。 这可以是完全限定的路径,也可以是相对于存储库根目录的路径。 不支持通配符。 请参阅 Azure Pipelines 中的项目
默认值:30$(Build.ArtifactStagingDirectory)
ArtifactName
项目名称
(必需)
指定要创建的项目的名称。 它可以是任何你想要的。
默认值:30drop
publishLocation
项目发布位置
(必需)
选择是将项目存储在 Azure Pipelines (Container) 中,还是将其复制到必须从生成代理访问的 FilePath 文件共享 () 。 若要了解详细信息,请参阅 Azure Pipelines 中的项目
默认值:30Container
TargetPath
文件共享路径
必需,如果 publishLocation=FilePath
指定要在其中复制文件的文件共享的路径。 该路径必须是完全限定的路径或相对于存储库根目录的有效路径。 不支持将项目从 Linux 或 macOS 代理发布到文件共享。
Parallel
(Azure PipelinesTFS 2018 或更高版本的) 进行并行复制
选择是否使用多个线程并行复制文件,以增加潜在的吞吐量。 如果未启用此设置,将使用单个线程。
ParallelCount
(Azure PipelinesTFS 2018 或更高版本) 的并行计数
输入并行度 () 用于执行复制的线程数。 该值必须至少为 1 且不大于 128。 根据生成代理的 CPU 功能选择一个值。
默认值:308
FileCopyOptions
文件复制选项
将其他选项传递给 Robocopy 命令。 例如,递归微型匹配模式 **/*
StoreAsTar
上传前将项目进行 Tar
在上传之前,将发布路径中的所有文件添加到 tar 存档。 此选项允许保留 UNIX 文件权限。 使用 extractTarsDownloadBuildArtifacts 任务选项自动提取下载的项目。 在 Windows 上忽略
默认值:30false
控件选项

注意

不能使用 IIS 保留的 BinApp_Data 和其他文件夹名称作为项目名称,因为此内容不可用于响应 Web 请求。 有关详细信息 ,请参阅 ASP.NET Web 项目文件夹结构

示例

steps:
- task: CopyFiles@2
  inputs:
    contents: '_buildOutput/**'
    targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: $(Build.ArtifactStagingDirectory)
    artifactName: MyBuildOutputs

常见问题

问:我在发布项目时遇到问题。 如何查看详细日志?

若要为管道启用详细日志,请执行以下操作:

  1. 编辑管道并选择“变量
  2. 添加具有名称和 System.Debug 值的新变量 true
  3. 保存

问:哪些变量可供我使用?

答: $(Build.SourcesDirectory)$(Agent.BuildDirectory) 只是可以在管道中使用的几个变量。 变量可用作 表达式 或脚本。

若要了解不同类型的变量,请参阅定义变量预定义变量和经典版本和项目变量。

问:任务允许我在 yaml 管道的部署作业中发布项目,但无法在下游管道中使用它?

答:部署作业没有源分支的上下文,因此不适合发布项目。 它们主要用于使用项目。 解决方法是将逻辑隔离到依赖于部署作业) 的单独作业 (中。