使用 Azure Pipelines 發佈和下載通用套件
Azure DevOps Services
通用套件可讓您封裝和共用任意數目的檔案,不論類型為何,都會與您的小組或目標對象共用。 在 Azure Pipelines 中使用通用套件工作,您可以封裝、發佈及下載大小為 4 TiB 的套件。 每個套件都會以唯一的名稱和版本號碼來識別。 您可以使用 Azure CLI 或 Azure Pipelines,從制品來源發佈和下載套件。
注意
通用套件僅適用於 Azure DevOps Services。
先決條件
產品 | 需求 |
---|---|
Azure DevOps | - Azure DevOps 專案。 - 許可權: - 若要授與專案中所有管線的存取權,您必須是 Project Administrators 群組的成員,。 - 若要建立服務連線,您必須具有 系統管理員 或 創建者 角色,針對 服務連線。 |
複製檔案
Azure Pipelines 中的 「通用套件」工作會使用 $(Build.ArtifactStagingDirectory)
作為您想要發行之檔案的預設位置。 若要準備要發行的通用套件,請將您要發行的檔案移至此目錄。 您也可以使用 複製檔案 公用程式工作,將檔案複製到發行目錄。
發佈通用套件
登入您的 Azure DevOps 組織,然後流覽至您的專案。
選取 [ 管線],然後選取您的管線定義。
選取 [ 編輯],然後將下列代碼段新增至您的 YAML 管線。
- task: UniversalPackages@0 displayName: Publish inputs: command: publish publishDirectory: '$(Build.ArtifactStagingDirectory)' ## Location of the files you wish to publish vstsFeedPublish: '<PROJECT_NAME>/<FEED_NAME>' ## The project and feed name to publish to. If you're working with an organization-scoped feed, specify only the feed name vstsFeedPackagePublish: '<PACKAGE_NAME>' ## The package name. Must be lower case. Use only letters, numbers, and dashes packagePublishDescription: '<PACKAGE_DESCRIPTION>' ## Description of the package content
注意
若要將套件從 Pipelines 發佈至摘要,請確定 專案集合建置服務 和您的專案的 建置服務 身分識別都已被賦予摘要設定中的 摘要發行者(貢獻者) 角色。 如需詳細資訊,請參閱 管理許可權 。
套件版本控制
通用套件會遵循語意版本,其以三個數值元件為基礎:主要、次要和修補。 版本設定格式 Major.Minor.Patch
。
- 當新增與舊版回溯相容的新功能時,會增加次要版本。 在此情況下,次要版本會遞增,修補程式版本會重設為 0(例如 1.4.17 至 1.5.0)。
- 當有重大變更可能會中斷與舊版的相容性時,主要版本會遞增,將次要版本和修補程式版本重設為 0(例如 2.6.5 至 3.0.0)。
- 當錯誤修正或其他不會影響相容性的小變更套用時,修補程式版本會遞增(例如 1.0.0 至 1.0.1)。
發佈新套件時,通用套件工作會自動為您選取下一個主要、次要或修補程式版本。
若要啟用套件的版本控制,請將 versionOption
輸入新增至 UniversagePackage 工作。 發行新版本的可用選項包括: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
inputs:
command: publish
publishDirectory: '$(Build.ArtifactStagingDirectory)' ## Location of the files you wish to publish
vstsFeedPublish: '<PROJECT_NAME>/<FEED_NAME>' ## The project and feed name to publish to. If you're working with an organization-scoped feed, specify only the feed name
vstsFeedPackagePublish: '<PACKAGE_NAME>' ## The package name. Must be lower case. Use only letters, numbers, and dashes
versionOption: custom ## Select a versioning strategy. Options: `major`, `minor`, `patch`, `custom`
versionPublish: '<PACKAGE_VERSION>' ## The custom package version
packagePublishDescription: '<PACKAGE_DESCRIPTION>' ## Description of the package content
下載通用套件
登入您的 Azure DevOps 組織,然後流覽至您的專案。
選取 [ 管線],然後選取您的管線定義。
選取 [ 編輯],然後將下列代碼段新增至您的 YAML 管線。
steps: - task: UniversalPackages@0 displayName: Download inputs: command: download vstsFeed: '<PROJECT_NAME>/<FEED_NAME>' ## The Artifacts feed hosting the package to be downloaded vstsFeedPackage: '<PACKAGE_NAME>' ## Name of the package to be downloaded vstsPackageVersion: '<PACKAGE_VERSION>' ## Version of the package to be downloaded downloadDirectory: '$(Build.SourcesDirectory)\someFolder' ## The download folder. Default value: $(System.DefaultWorkingDirectory).
若要從外部來源下載通用套件,您可以使用下列範例:
steps:
- task: UniversalPackages@0
displayName: Download a Universal Package
inputs:
command: download
feedsToUse: external ## Set the value to `external` when downloading from an external source
externalFeedCredentials: 'MSENG2' ## Name of the service connection to the external feed
feedDownloadExternal: 'fabrikamFeedExternal' ## Name of the external feed
packageDownloadExternal: 'fabrikam-package' ## The package name you wish to download
versionDownloadExternal: 1.0.0 ## The version of the package you wish to download
提示
通配符可用來下載最新版本的通用套件。 如需詳細資訊,請參閱 下載最新版本。