使用 Azure Pipelines 发布和下载通用包

Azure DevOps Services

使用通用包可以打包任意数量、任意类型的文件,并将其与团队共享。 使用 Azure Pipelines 中的通用包任务,可以打包、发布和下载各种大小(不超过 4 TB)的包。 每个包都以名称和版本号唯一标识。 可以使用 Azure CLI 或 Azure Pipelines 从 Artifacts 源发布和使用包。

注意

通用包仅在 Azure DevOps Services 中可用。

复制文件

Azure Pipelines 中的通用包任务设置为使用 $(Build.ArtifactStagingDirectory) 作为默认发布目录。 若要使通用包做好发布准备,请将要发布的文件移动到该目录。 也可以使用复制文件实用工具任务将这些文件复制到发布目录。

发布通用包

若要将通用包发布到 Azure Artifacts 源,请将以下任务添加到管道的 YAML 文件中。

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    packagePublishDescription: '<Package description>'
参数 说明
publishDirectory 要发布的文件的位置。
vstsFeedPublish 要发布到的项目和源名称。 如果使用组织范围的源,请仅指定源名称。
vstsFeedPackagePublish 包名称。 必须采用小写。 只能使用字母、数字和短划线。
packagePublishDescription 包内容的说明。

若要从管道将包发布到 Azure Artifacts 源,管道标识必须在源上具有源发布者(参与者)角色。 有关详细信息,请参阅管道权限

若要发布到外部源,必须首先创建一个服务连接以便对源进行身份验证。 有关详细信息,请参阅管理服务连接

包版本控制

通用包遵循语义版本控制规范,可以按名称和版本号识别通用包。 语义版本号由主要版本、次要版本和修补程序版本这三个数字部分组成,其格式为:Major.Minor.Patch

当添加与先前版本后向兼容的新功能时,次要版本号会递增,在这种情况下,请递增次要版本并将修补程序版本重置为 0(1.4.171.5.0)。 当发生可能破坏与先前版本兼容性的中断性变更时,主要版本号会递增。 在这种情况下,请递增主要版本并将次要版本和修补程序版本重置为 0(2.6.53.0.0)。 当只进行了不影响与以前版本(1.0.01.0.1)兼容性的错误修复或其他小更改时,应增修补程序的版本号。

发布新包时,通用包任务将自动为你选择下一个主要版本、次要版本或修补程序版本。

若要为包启用版本控制,请将 versionOption 输入添加到 YAML 文件。 用于发布新包版本的选项是:majorminorpatchcustom

选择 custom 可以手动指定包版本。 其他选项从源中获取最新的软件包版本,并将所选版本段递增 1。 例如,如果你的包版本是 testPackage 1.0.0,在选择 major 选项后,新包的版本将是 testPackage 2.0.0。 如果选择 minor 选项,则包版本将变为 1.1.0;如果选择 patch 选项,包版本将变为 1.0.1。

如果选择 custom 选项,则还必须指定 versionPublish 值,如下所示:

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    versionOption: custom
    versionPublish: '<Package version>'
    packagePublishDescription: '<Package description>'
参数 说明
publishDirectory 要发布的文件的位置。
vstsFeedPublish 要发布到的项目和源名称。 如果使用组织范围的源,请仅指定源名称。
vstsFeedPackagePublish 包名称。 必须采用小写。 只能使用字母、数字和短划线。
versionOption 选择版本控制策略。 选项:majorminorpatchcustom
versionPublish 自定义包版本。
packagePublishDescription 包内容的说明。

下载通用包

若要从组织中的源下载通用包,请将通用包任务与 download 命令结合使用,如下所示:

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    vstsFeed: '<projectName>/<feedName>'
    vstsFeedPackage: '<packageName>'
    vstsPackageVersion: '<packageVersion>'
    downloadDirectory: '$(Build.SourcesDirectory)\someFolder'
参数 说明
vstsFeed 托管要下载的包的 Artifacts 源。
vstsFeedPackage 要下载的包的名称。
vstsPackageVersion 要下载的包的版本。
downloadDirectory 包目标文件夹。 默认值:$(System.DefaultWorkingDirectory)。

若要从外部源下载通用包,请使用以下代码片段:

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    feedsToUse: external
    externalFeedCredentials: 'MSENG2'
    feedDownloadExternal: 'fabrikamFeedExternal'
    packageDownloadExternal: 'fabrikam-package'
    versionDownloadExternal: 1.0.0
参数 说明
feedsToUse 从外部源下载时,请将值设置为 external
externalFeedCredentials 指向外部源的服务连接的名称。 有关详细信息,请参阅管理服务连接
feedDownloadExternal 外部源的名称。
packageDownloadExternal 要下载的包名称。
versionDownloadExternal 要下载的包的版本。

提示

可以使用通配符下载最新版本的通用包。 有关详细信息,请参阅下载最新版本