使用 Azure Pipelines 發佈 Cargo 套件
Azure DevOps Services |Azure DevOps Server 2022
Azure Pipelines 可讓開發人員將其 Cargo 套件發佈至 Azure Artifacts 摘要和公用登錄,例如 Crates.io。 在本文中,您將瞭解如何使用 YAML 和傳統管線,將您的 Cargo 套件發佈至 Azure Artifacts 摘要。
本文將引導您瞭解如何:
- 建立 Azure Artifacts 摘要
- 使用 Azure Artifacts 進行驗證
- 發佈貨物套件
必要條件
Azure DevOps 組織。 如果您尚未建立組織,請建立組織 。
Azure DevOps 專案。 如果您還沒有專案,請建立專案 。
建立摘要
Azure Artifacts 建議有專用的摘要來取用 crates.io 的箱子,以及專門發佈內部箱的個別摘要。 如果您已經有摘要,您可以繼續進行下一節。
登入您的 Azure DevOps 組織,然後瀏覽至您的專案。
選取 [ 成品],然後選取 [ 建立摘要]。
提供摘要的名稱、指定其可見度,然後選擇摘要的範圍。
完成後,選取 [建立]。
使用 Azure Artifacts 進行驗證
登入您的 Azure DevOps 組織,然後瀏覽至您的專案。
選取 [ 成品],然後選取您的摘要。
選取 [ 連線至摘要],然後從左窗格中選取 [貨物 ]。
依照 Project 安裝程式一節中的指示,將提供的代碼段新增至來源存放庫中的 config.toml 檔案:
專案範圍的摘要:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
組織範圍的摘要:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
使用封裝>讀取和寫入範圍建立個人存取令牌,以向您的摘要進行驗證。
使用 CargoAuthenticate 工作從管線進行驗證:
將箱子發佈至您的摘要
從您的 Azure DevOps 專案中,選取 [管線]、選取您的管線定義,然後選取 [ 編輯]。
+
選取代理程式作業的登入,以新增工作。 透過搜尋函式尋找PowerShell工作,然後選取 [新增] 將它新增至您的管線。為您的工作指定名稱,例如 [發佈],然後選取 [ 內嵌 ] 作為類型。 將發佈命令內嵌貼上,將佔位元取代為您的摘要名稱:
cargo publish --registry <FEED_NAME>
範例
在此範例中,我們會在代理程式上安裝 rustup、設定 PATH 環境變數、建置我們的專案、使用 CargoAuthenticate 進行驗證,最後將我們的箱子發佈至 Azure Artifacts 摘要:
trigger:
- main
pool:
vmImage: windows-latest
steps:
- powershell: |
Invoke-WebRequest -Uri https://sh.rustup.rs -OutFile rustup-init.sh
bash .\rustup-init.sh -y
echo "##vso[task.prependpath]$env:USERPROFILE\.cargo\bin"
displayName: Install
- task: CargoAuthenticate@0
displayName: 'cargo Authenticate'
inputs:
configFile: '.cargo/config.toml'
- script: |
cargo build --all
displayName: Build
- powershell: |
cargo publish --registry CargoInternalFeed
displayName: Publish
管線執行完成後,您的摘要中應該提供您的箱子箱,如下所示: