在 Azure Artifacts 中發佈和下載通用套件
Azure DevOps Services
通用套件可讓開發人員將各種套件類型儲存在 NuGet、npm、Python 套件等傳統套件之外。您可以使用 Azure CLI 直接從命令行發佈及下載通用套件。 雖然已發行套件的大小可能會有所不同,甚至可能達到 4 TB,但它們必須始終滿足包含名稱和版本號的基本要求。 本文將引導您逐步完成從 Azure Artifacts 提要中發佈和下載通用套件的步驟。
先決條件
安裝 Azure DevOps 擴充功能 0.14.0 版或更高版本。
建立資訊流
如果您已經有訂閱源,則可以移至下一節。 否則,請遵循下列步驟來建立新的 Azure Artifacts 來源:
登入您的 Azure DevOps 組織,然後流覽至您的專案。
選取 [工件],然後選取 [建立動態消息]。
為您的資訊來源提供描述性名稱,並設定其可見性(誰可以在您的資訊來源中檢視套件)。 定義摘要 範圍,如果您想要包含公用登錄中的套件,請選取 [上游來源] 複選框。
完成時,請選擇 建立。
注意
新建立的摘要預設會將專案的 建置服務 角色指定為 摘要和上游讀取者(共同作業者)。
安裝 Azure DevOps 擴充功能
使用 CLI 可協助您簡化工作。 繼續之前,請確定您已安裝 Azure CLI(2.10.1 版或更高版本)。 此外,我們需要安裝 Azure DevOps 擴充功能,以從命令行管理 Azure DevOps 服務。
執行下列命令以安裝 Azure DevOps 擴充功能:
az extension add --name azure-devops
如果您已安裝 Azure DevOps 擴充功能,且想要將它更新為最新版本,請執行下列命令:
az extension update --name azure-devops
連接到數據訂閱
登入您的 Azure DevOps 組織,然後流覽至您的專案。
選取 工件,然後從下拉功能表中選取您的資訊流。
選取 連接至資料流,然後從左側導覽窗格中選取 通用套件。
請遵循 Project 安裝設定 一節中的指示,連線到您的資訊流。
執行下列命令以登入 Azure CLI:
az login
執行下列命令,將專案和組織設定為 CLI 的預設組態:
az devops configure --defaults project=<YOUR_PROJECT_NAME> organization=https://dev.azure.com/<YOUR_ORGANIZATION_NAME>
注意
如果您的組織使用防火牆或 Proxy 伺服器,請確定您允許 Azure Artifacts 網域 URL 和 IP 位址。
發佈通用套件
若要將通用套件發佈至您的饋送,您必須提供套件名稱和版本號碼。
套件名稱應該使用小寫,並以字母或數字開頭和結尾,只能包含字母、數字以及不連續的連字元、底線和句點。 套件版本也應該以小寫為單位,且不應包含組建元數據 (+ 後綴)。 如需詳細資訊,請參閱 語意版本設定。
執行下列命令,將通用套件發佈至資訊流:
組織範圍的摘要:
az artifacts universal publish --organization https://dev.azure.com/<YOUR_ORGANIZATION> --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <PACKAGE_DIRECTORY> --description <PACKAGE_DESCRIPTION>
專案專屬的動態:
az artifacts universal publish --organization https://dev.azure.com/<YOUR_ORGANIZATION> --project <PROJECT_NAME> --scope project --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <PACKAGE_DIRECTORY> --description <PACKAGE_DESCRIPTION>
注意
包含異常大量檔案的通用套件(100K+) 可能無法發佈。 在此情況下,我們建議將檔案組合成 ZIP 或 TAR 封存,以減少檔案計數。
檢視已發佈的套件
下載通用套件
執行下列命令,使用 Azure CLI 從您的饋送下載特定的 Universal Package:
組織範圍的資料流:
az artifacts universal download --organization https://dev.azure.com/<YOUR_ORGANIZATION_NAME> --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <DOWNLOAD_PATH>
專案範圍的摘要:
az artifacts universal download --organization https://dev.azure.com/<YOUR_ORGANIZATION_NAME> --project <PROJECT_NAME> --scope project --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <DOWNLOAD_PATH>
下載特定檔案
如果您想要只下載特定檔案,請使用 --file-filter
參數來擷取檔案的子集。 如需詳細資訊,請參閱 檔案比對模式參考。
針對組織的資訊流:
az artifacts universal download --organization https://dev.azure.com/<YOUR_ORGANIZATION_NAME> --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <DOWNLOAD_PATH> --file-filter <MATCH_PATTERN>
專案範圍的摘要:
az artifacts universal download --organization https://dev.azure.com/<YOUR_ORGANIZATION_NAME> --project <PROJECT_NAME> --scope project --feed <FEED_NAME> --name <PACKAGE_NAME> --version <PACKAGE_VERSION> --path <DOWNLOAD_PATH> --file-filter <MATCH_PATTERN>
範例:例如, 使用 --file-filter logs/.log 會比對任何檔案與包含 “logs” 的檔名,並以擴展名 “.log” 結尾(例如build_logs.log)。
下載最新版本
您可以使用通配符 *
下載最新版的通用套件。
範例:
--version '*'
:下載最新版本。--version '1.*'
:下載具有主要 1 的最新版本。--version '1.2.*'
:下載主版本 1 和次版本 2 的最新更新補丁版本。
注意
預發行版本(版本號碼中有中橫線的套件)不支援通配符模式。