使用 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.17
到 1.5.0
)。 当发生可能破坏与先前版本兼容性的中断性变更时,主要版本号会递增。 在这种情况下,请递增主要版本并将次要版本和修补程序版本重置为 0(2.6.5
到 3.0.0
)。 当只进行了不影响与以前版本(1.0.0
到 1.0.1
)兼容性的错误修复或其他小更改时,应增修补程序的版本号。
发布新包时,通用包任务将自动为你选择下一个主要版本、次要版本或修补程序版本。
若要为包启用版本控制,请将 versionOption
输入添加到 YAML 文件。 用于发布新包版本的选项是:major
、minor
、patch
或 custom
。
选择 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 | 选择版本控制策略。 选项:major minor 、patch 、custom 。 |
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 | 要下载的包的版本。 |
提示
可以使用通配符下载最新版本的通用包。 有关详细信息,请参阅下载最新版本。