Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
Azure Artifacts アップストリーム ソースでは、開発者が複数のソースのパッケージを 1 つのフィードに格納できるため、パッケージ管理が簡素化されます。 アップストリーム ソースから初めてパッケージをインストールすると、アップストリーム ソースが一時的に使用できなくなった場合でも、Azure Artifacts によってフィードにコピーが自動的に保存され、継続的なアクセスが確保されます。 このチュートリアルでは、Azure Artifacts のアップストリーム ソースと同じ組織の内部フィードを設定する方法について説明します。
前提条件
| 製品 | 必要条件 |
|---|---|
| Azure DevOps | - Azure DevOps 組織。 - Azure DevOps プロジェクト。 |
フィードを作成する
フィードがまだない場合は、次の手順に従ってフィードを作成し、一般的なパブリック レジストリをアップストリーム ソースとして追加します。
Azure DevOps にサインインし、プロジェクトに移動します。
[ 成果物] を選択し、[ フィードの作成] を選択します。
フィードの 名前 を入力し、適切な 可視性 と スコープ の設定を選択します。
[共通パブリック ソースのパッケージを含める] を選択して、共通のパブリック レジストリをアップストリーム ソースとして追加します。
終わったら [作成] を選択します。
フィードに接続する
プロジェクトを構成し、フィードで認証するには、次の手順に従います。 この例では、Rust プロジェクトを使用します。 その他のテクノロジについては、次のセクションのプロジェクトセットアップリンクを参照してください。
Azure DevOps にサインインし、プロジェクトに移動します。
[ 成果物] を選択し、ドロップダウン メニューからフィードを選択し、[ フィードに接続] を選択します。
左側のナビゲーション ウィンドウで、[ Cargo] を選択します。
[ プロジェクトのセットアップ ] セクションで、最初のスニペットをコピーし、ソース リポジトリの cargo/config.toml ファイルに 追加します。 config.toml ファイルは次のようになります。
[registries] FEED_NAME = { index = "sparse+https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/Cargo/index/" }
他のパッケージの種類のプロジェクトのセットアップ
別のテクノロジを使用している場合は、次のリンクを使用して、適切なプロジェクトセットアップガイダンスに従ってフィードに接続します。
アップストリーム フィードを設定する
アップストリーム ソースと同じ組織の内部フィードを設定するには、次の手順に従います。
Azure DevOps にサインインし、プロジェクトに移動します。
[成果物] を選択し、前に作成したフィードをフィードのドロップダウン メニューから選択します。
歯車アイコン ボタンの
を選択して、[ フィードの設定] に移動します。[アップストリーム ソース] を選択し、[アップストリームの追加] を選択します。
[ 種類 ] タブで、 この組織の Azure Artifacts フィードを選択します。
[ 構成 ] タブの [ フィード ] ドロップダウン メニューから、アップストリーム ソースとして追加するフィードを選択します。 目的の ビューを選択し、含める パッケージの種類 を選択し、必要に応じて アップストリーム ソース名を更新します。
終了したら [追加] を選択します。
[保存] を選択して変更を保存します。
アップストリームからパッケージをインストールする
次の例は、 Test_Feed で CargoDemoFeed がアップストリーム ソースとして構成されているシナリオを示しています。 デモンストレーションの目的で 、Test_Feed は空で、パッケージは含んでいません。
コラボレーター (またはそれ以上) が、アップストリームの CargoDemoFeed で使用できるTest_Feedからパッケージをインストールすると、Azure Artifacts はそのパッケージをダウンストリーム Test_Feedにコピーし、通常のcargo install フローの一部としてダウンロードします。 この初回コピーの後、 Test_Feedからその パッケージを今後ダウンロードする場合は、後でダウンロードしてもダウンストリーム フィードが変更されないため、 フィード リーダー (またはそれ以上) のアクセス許可のみが必要になります。 最初のインストールのみがアップストリームからダウンストリームにパッケージをコピーするため、その初期アクションにのみ昇格されたアクセス許可が必要です。
Azure DevOps にサインインし、アップストリーム フィード (この例では CargoDemoFeed) をホストするプロジェクトに移動します。
[成果物] を選択し、ドロップダウン メニューからアップストリーム フィード (CargoDemoFeed) を選択します。
インストールするパッケージを見つけて、その名前をメモします。 この例では、 atomic-waker はパッケージ名です。 また、Azure Artifacts UI でダウンストリーム フィードからアップストリーム パッケージを直接検索することもできます。 詳細については、 アップストリーム ソースからのパッケージの検索 を参照してください。
プロジェクトのルートに移動し、 Cargo.toml を開きます。 [依存関係] の下にパッケージを追加します。 これはプライベート クレートの依存関係であるため、 Cargo.toml ファイルにレジストリ名を指定する必要があります。 Cargo は、特に指定がない限り、 crates.io を既定のレジストリと見なします。 依存関係を次のように追加します。
CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" } # Example: # [dependencies] # atomic-waker = { version = "1.1.2", registry = "Test_Feed" }ローカル コマンド プロンプトを開き、プロジェクトのルートに移動し、次のコマンドを実行してプロジェクトをビルドし、クレートをダウンロードします。
cargo buildビルドが完了したら、 Azure DevOps>Artifacts に戻り、使用するフィード (この例では Test_Feed) を選択します。
ローカルにインストールしたパッケージがダウンストリーム フィードに表示されることを確認します。 Azure Artifacts では、アップストリーム ソースからパッケージがインストールされると、パッケージのコピーが自動的に保存されます。