Azure Pipelines で Cargo パッケージを発行する
Azure DevOps Services | Azure DevOps Server 2022
Azure Pipelines を使用すると、開発者は Cargo パッケージを Azure Artifacts フィードや Crates.io などのパブリック レジストリに発行できます。 この記事では、YAML とクラシック パイプラインの両方を使ってCargo パッケージをAzure Artifactsフィードに公開する方法について説明します。
前提条件
Azure Artifacts フィード。 フィード がまだない場合は作成します。
フィードを使用して認証する
Azure DevOps 組織にサインインしてから、プロジェクトに移動します。
[ Artifacts]\(成果物\) を選択し、フィードを選択します。
[フィードに接続] を選択し、左側のウィンドウから [Cargo] を選択します。
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>"
パッケージ化>スコープを使用して個人用アクセス トークンを作成し、フィードで認証します。
Azure DevOps 組織にサインインしてから、プロジェクトに移動します。
パイプラインを選択し、次にパイプライン定義を選択します。
編集を選択し、次のスニペットを YAML パイプラインに追加します。
- task: CargoAuthenticate@0 displayName: 'Cargo Authenticate' inputs: configFile: '.cargo/config.toml' ## Path to the config.toml file that specifies the registries you want to work with. Select the file, not the folder e.g. "/.cargo/config.toml"
クレートをフィードに公開する
Azure DevOps 組織にサインインしてから、プロジェクトに移動します。
パイプラインを選択し、その後、のパイプライン定義を選択します。
編集を選択し、次のスニペットを YAML パイプラインに追加します。
- powershell: | cargo publish --registry <FEED_NAME> ## Replace the placeholder with your feed name env: SYSTEM_ACCESSTOKEN: $(system.accesstoken)
例
次の例は、エージェントに 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
パイプライン実行が完了すると、以下に示すように、フィードでクレートが使用できるようになります。