次の方法で共有


継続的なビルドおよびテストの自動化環境の配置と使用

この記事では継続的なビルドとテストの自動化をサポートする環境を配置して使用する方法を説明します。

必要条件

仮想マシン (VM) のクラウド配置には Microsoft Azure DevOps サブスクリプションが必要です。

ワークフロー

Microsoft Dynamics Lifecycle Services (LCS) で Azure DevOps サブスクリプションを構成した後、LCS を使用して開発者 VM やビルド / テスト VM を配置できます。 LCS は開発 VM を構成し、それは Azure DevOps プロジェクトにマップされます。 LCS は、ビルド VM も構成します。ビルド VM は、自動的に Azure DevOps プロジェクトにマップされ、Azure DevOps プロジェクトのモジュールを構成するビルド エージェント / コントローラーを持ち、妥当性確認のための外部エンドポイントを持つ自動化テストを実行します。 次の図は通常のワークフローを示します。

LCS、Azure DevOps、および VM の関係。

このワークフローには、Azure の開発者 VM とビルド / テスト VM の LCS 配置が含まれています。

  • LCS は Azure で開発およびビルド / テスト環境を作成します。 ビルド / テスト環境を作成するためには、LCS は Azure DevOps プロジェクトのソース コードがどこにあるか特定できる必要があります。
  • 開発者は開発者 VM のソース コードで作業し、その作業は Azure DevOps プロジェクトに同期されます。
  • ビルド プロセスによって、コードが Azure DevOps からビルド / テスト VM に同期され、配置可能なパッケージが作成され、サンドボックスおよび運用環境に適用できるようになります。 ソース コードは、開発 VM からビルド / テスト VM への直接フローを持ちません。 これらは Azure DevOps を通して同期されます。

カスタム テスト コードの記述またはビルド インフラストラクチャと統合するための自動テスト コードを生成する方法の詳細は、テストと検証 を参照してください。

Azure DevOps の設定

計画を選択

最初のステップは組織に Azure DevOps プランを選ぶ ことです。

Azure DevOps の設定

Azure DevOps をセットアップするには、次の手順に従います。

  1. 個人用アクセス トークンの作成. トークンはすべての LCS バックグラウンド アクションに使用されます。 これらのアクションにはアップグレードと配置が含まれます。 ユーザーが LCS からアクションを起動すると、LCS はこれらのユーザーが Azure DevOps に追加されることを期待しています。 ユーザーは彼らのために Azure DevOps への LCS アクセスを認可する必要があります。
  2. LCS の構成

LCS の Azure DevOps へのアクセスを承認するまで、「設定が完了していません」 というメッセージが表示されます。

現在のビルドの中断

既にビルド定義を持つ既存の Azure DevOps プロジェクトにビルド環境を展開している場合、ビルドをキューに入れるアクティブなトリガーがないことを確認してください。 また、ビルド プールに対して、スケジュールされたりキューに格納されたビルドがないことを確認してください。

LCS 開発およびビルド / テスト環境の展開

LCS では、開発およびビルド / テスト環境を展開するオプションが提供されます。 このオプションでは、Azure DevOps プロジェクトに接続されたクラウド内に、開発者を配置して VM をビルドすることができます。

また、Microsoft-hosted agents を利用することで、X++ のコードをビルドして展開することができます。

Azure DevOps 資格情報の設定と LCS プロジェクトへのリンク

まだ完了していない場合は、ビルド環境を配置する前に、最初にLCS プロジェクトを設定してから Azure DevOps プロジェクトに接続してください。

  1. https://lcs.dynamics.com/で LCS ポータルにログインして、Azure DevOps および LCS プロジェクトに接続します。
  2. 作業しているプロジェクトを選択します。
  3. プロジェクト設定タイルをクリックします。
  4. Azure DevOps を選択し、モジュール プロジェクトのソース コードが保管されている Azure DevOps URL を入力します。
  5. Azure DevOps リンクを指定して、承認し、既定のプロジェクトを選択 をクリックします。

Azure DevOps に移行または新しいモジュールコードをチェックイン

コードの移行プロセスまたは開発活動の一環として、モデル ソース ファイルと関連するテスト モデル ソース ファイルを Azure DevOps にチェックインすることをお勧めします。 LCS 移行サービスを使用してコードを移行した場合、自動的に行われます。 Azure DevOps にコードをチェックインせずに直接チェックインする場合は、Azure DevOps フォルダ構造の特定のガイドラインに従う必要があります。 これは、適切なビルド定義の設定に役立ちます。 すべてのモジュールをルート フォルダーメタデータに追加する必要があります。 各モジュールにはフォルダーが 2 つ必要です。 1 つのフォルダーには、すべてのモデルが含まれています。 他のフォルダーには、そのモジュールの記述子 XML が含まれている必要があります。

Azure DevOps フォルダー構造。

ビルド環境の展開

開発環境の展開およびアクセス」の記事では、開発環境の展開方法が説明されています。 同様のフローを使用して、ビルド環境を配置します。 展開またはコンフィギュレーション ウィザードを実行する際に、トポロジを選択してくださいというメッセージが表示されたら、ビルドおよびテスト トポロジを選択してから DevTest を選択します。

展開ウィザードの一部として、ビルド エージェント名およびビルド エージェント プールを構成できます。

詳細設定 をクリックし、Azure DevOps を選択します

  1. ビルド エージェント名: Azure DevOps ビルド エージェントのフレンドリ名
  2. ビルド エージェント プール: ビルド マシンの配置に使用するビルド エージェント プール名を指定します。 Azure DevOps に少なくとも 1 つのエージェント プールが含まれていることを確認します。 既定では、既定のプールがあります。 既定のプールを削除した場合は、ビルド配置は失敗します。
  3. 分岐名: ビルド VM の既定のソース コード同期場所になる Azure DevOps ソース コード ブランチを指定します。 既定の分岐は、「メイン」です。

ビルドとのテスト統合

テストと検証のためのビルド プロセスの一部としてテストを統合するには、2 つの方法があります。

  • 単位とコンポーネントのレベル テストに基づく SysTest フレームワーク。
  • 自動化されたテストの実行の XML を記録するタスク レコーダーから、コードを生成します。

これらの2つの方法の詳細については、 テストと検証 の記事で説明しています。 テストおよび検証の手順については、この資料を参照してください。

ビルド VM 環境の使用

LCS を通じて開発者トポロジにビルド VM が配置されると、それは事前に構成され、ビルドを開始する準備ができます。 Visual Studio IDE または Azure DevOps インターフェイスから、いつでも既定の構成を変更することができます。 ビルド VM では、簡単なビルドのセットアップのために、モジュール ソース コードがビルド コンピューターに同期されます。 ビルド マシンは、ビルド エージェント、ビルド コントローラー、ビルド プロセス テンプレート、ビルド定義のデフォルト設定で自動構成されています。 ビルドに成功したら、ビルド定義と統合されているテストが実行されます。

定義済みのカスタマイズ可能なビルド環境を確認

ビルド VM には、Azure DevOps の一部としてリリースされた vNext ビルド エージェントが含まれています。 ビルド VM を配置するときは、既定では Azure DevOps プロジェクトと接続して同期するようにビルド エージェントが構成されます。 ビルド VM 構成の一部として、以下に示すようにデフォルトのビルド定義も作成および構成されます。

既定のビルド定義。

既定のビルド定義には、以下で説明するように、特定の操作を実行する複数のタスクが含まれています。

  1. ビルドに渡す事前定義済の変数パラメータをコンフィギュレーションします。 ビルド実行ごとにクリーンなデータベースを設定するには、DatabaseBackupToRestore変数のデータベース バックアップ ファイルの名前を指定します。 パッケージ フォルダーは、すべてのビルド時にクリーン パッケージ フォルダーのコピーで復元されます。

    定義済み変数ウィンドウ一覧。

  2. 以下のように、「トランク/メイン」ブランチにあるすべてのモジュールを検出して構築するためにソリューションをビルドします。

    ソリューション ウィンドウをビルドします。

  3. 「レポートの展開」タスクを使用して、レポートを生成し、ビルド VM に展開します。

  4. 「データベース同期」タスクを使用して、データベースをビルド VM 上のローカル SQL に同期させます。

  5. ビルドが成功した後、サンドボックス/ステージング環境を更新するために使用できる配置可能なパッケージを作成します。

    パッケージ ウィンドウを生成します。

  6. 「ビルド コンポーネントのコピーと発行」は、配置可能パッケージを Azure DevOps コンポーネントの場所にアップロードします。

    成果物ウィンドウを公開します。

  7. テストの実行については、3 つの既定のタスク「テスト設定」、「テストの実行」、および「テストの終了」があります。

    テスト ウィンドウを実行します。

  8. 既定のビルドは、毎日午後 5 時に開始をトリガーする予定です。トリガーは、チェックインごとにチームが必要とする「継続」に応じて変更できます。

    既定のビルド スケジュール。

既定の構成に変更を加えて、そのビルド VM がビルドをトリガーできるようにすることができます。

ビルドを開始し、ビルドとテストの実行結果を確認します。

既定のビルド構成を確認した後、Visual Studio IDE または Azure DevOps Web インターフェイスからビルドを手動でトリガーできます。

  1. ブラウザーを開き、Azure DevOps URL に接続します。
  2. 資格情報を使用してをログインします。
  3. ホーム ページの最近のプロジェクトとソリューションで、プロジェクトを選択します。
  4. 上部リンク オプションから、ビルドを選択します。
  5. 左側のパネルで、既定のビルド定義インスタンスを選択します。
  6. 右クリックし、キュー ビルド を選択して Azure DevOps ソース管理に既にチェックインしているモジュールおよびテスト モジュールのビルドをトリガーします。

次の例に示すように、ビルドの成功または失敗が表示されます。 すべてのビルドを表示します。

ビルドの成功または失敗を表示。

特定の完了したビルドとビューの成功/失敗の詳細を選択します。

ビルドの成功または失敗の詳細を表示。 テスト リンクをクリックして、テスト実行の失敗を視覚化します。

テスト実行エラーの可視化。