演習 - エージェントを使用してアプリケーションをビルドする
ビルド エージェントが実行され、ビルド ジョブを受信できるようになったので、実際の様子を見てみましょう。 このユニットでは、Space Game Web サイトをビルドするために指定する基本ビルド構成に変更を加えて、Microsoft ホステッド エージェントではなく独自のエージェントを使用するようにします。
Note
以下の手順は、前のモジュール「Azure 上で動作するビルド エージェントを作成する」の手順を実行した直後に実行してください。
このユニットの最後には、省略可能な手順として、Microsoft Azure DevOps 組織からエージェント プールを削除できます。
GitHub からブランチをフェッチする
このセクションでは、GitHub から build-agent
ブランチをフェッチし、そのブランチをチェックアウトします (つまりそのブランチに切り替えます)。
このブランチには、前のモジュールで作業した Space Game プロジェクトと、最初に使用する Azure Pipelines 構成が含まれています。
Visual Studio Code から、統合ターミナルを開きます。
Microsoft のリポジトリから
build-agent
という名前のブランチをダウンロードし、そのブランチに切り替えるために、次のgit fetch
およびgit checkout
コマンドを実行します。git fetch upstream build-agent git checkout -B build-agent upstream/build-agent
upstream とは Microsoft GitHub リポジトリを指していることを思い出してください。 Microsoft のリポジトリからプロジェクトをフォークしてローカルに複製したときにその関係をセットアップしたので、プロジェクトの Git 構成はアップストリーム リモートを認識します。
すぐに、
origin
と呼ばれる独自の GitHub リポジトリにこのブランチをプッシュします。必要に応じて、Visual Studio Code で、azure-pipelines.yml ファイルを開き、初期構成について理解します。
構成は、「Azure Pipelines を使用してビルド パイプラインを作成する」モジュールで作成した基本的なものに似ています。 アプリケーションのリリース構成のみがビルドされます。
ビルド構成を変更する
このセクションでは、ビルド構成に変更を加えて、Microsoft ホステッド エージェントの使用からビルド プール内のエージェントの使用に切り替えます。
Visual Studio Code で、azure-pipelines.yml ファイルを開いた後、
pool
セクションを探します。pool: vmImage: 'ubuntu-20.04' demands: - npm
pool
セクションを次のように変更します。pool: name: 'MyAgentPool' demands: - npm
このバージョンでは、
name
を使用してエージェント プール MyAgentPool を指定します。demands
セクションを維持して、ビルド エージェントに npm (Node.js パッケージ マネージャー) がインストールされている必要があることを指定します。統合ターミナルで、azure-pipelines.yml をインデックスに追加し、変更をコミットして、GitHub にブランチをプッシュします。
git add azure-pipelines.yml git commit -m "Use private agent pool" git push origin build-agent
Azure Pipelines での独自ビルド エージェントの使用を注視する
ビルド エージェントを使用して、パイプラインで実行されるビルドを監視します。
Azure DevOps で、Space Game - web - Agent プロジェクトに移動します。
プロジェクト ページまたは左側のペインで、[Pipelines] を選択します。
[最近実行したパイプライン] からパイプラインを選択し、最新の実行を選択します (MyAgentPool プールを使うようにパイプラインを更新したときに開始されたもの)。
[ジョブ] を選択し、各ステップを通じて実行をトレースします。
[Initialize job] タスクから、ビルドにビルド エージェントが使用されていることがわかります。
省略可能: ビルド プールを削除する
将来参照するためにビルド プール構成を Azure DevOps 組織内に保持することができます。ただし、このモジュールの最後のクリーンアップ手順を実行した後には、エージェントをホストしている VM は使用できなくなることに注意してください。
実際、Azure DevOps はエージェントがオフラインであることを検出します。 Azure Pipelines は、次に MyAgentPool プールを使用してビルドがキューに入れられたとき、利用可能なエージェントをチェックします。
オプションの手順として、Azure DevOps からビルド プール構成を削除できます。 以下にその方法を示します。
Azure DevOps で、Space Game - web - Agent プロジェクトに移動します。
[Project settings] を選択します。
[パイプライン] で、[エージェント プール] を選択します。
[MyAgentPool] で、ごみ箱アイコンを選択してから、[削除] を選択します。