LabDefaultTemplate ワークフロー アクティビティ
このトピックでは LabDefaultTemplate.11.xaml ファイルで Windows Workflow アクティビティについて説明します。LabDefaultTemplate は、ワークフロー プロセスが、配置するビルド有効にする Lab Management を定義し、ラボ環境でアプリケーションをテストします。Windows Workflow についてさらに学習する場合は、MSDN Web サイトの .NET 4 の Windows Workflow Foundation (WF) に Developer の概要 ページを参照してください。
要件
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional
ワークフローの初期化
LabDefaultTemplate のルートは TfsBuild.Process の処理です。この ActivityBuilder は、ビルド定義のウィンドウとのラボ ワークフロー パラメーター ウィザードで指定された入力からワークフローのビルド定義のグローバルな引数を初期化します。
引数
LabWorkflowParameters の引数は、のラボ ワークフロー パラメーター ウィザードに指定されたデータが含まれています。この引数には、次のオブジェクトを含むオブジェクトです: LabWorkflowDetails
BuildDetails |
ビルドのビルドで詳しく説明したストアこと Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails のオブジェクトを展開し、ワークフローをテストします。 |
DeploymentDetails |
Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails の格納するオブジェクト。ワークフローのビルドの配置に必要な情報。 |
EnvironmentDetails |
Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails の格納するオブジェクト。ビルドに使用し、配置、テスト シナリオする環境を識別する情報。 |
TestParameters |
Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails の格納するオブジェクト。自動テストの実行を作成するために必要なテスト パラメーターの詳細。 |
次の引数は、グローバル スコープで宣言されています:
引数 |
型 |
---|---|
Metadata |
ProcessParameterMetadataCollection |
Verbosity |
ログに書き込まれる情報の量を指定する Verbosity の列挙値。 |
BuildNumberFormat |
String ビルド番号の形式を指定する。 |
SupportedReasons |
ビルドの理由を指定した BuildReasonの列挙値。 |
アプリケーションの配置ワークフローのシーケンス
アプリケーション配置ワークフロー の制御シーケンスは全体のビルド、配置、テスト シナリオします。 アプリケーション配置ワークフロー は、次の変数を宣言しています:
|
ビルドの実行
更新プログラムのビルド番号 |
更新プログラムのビルド番号 は BuildNumberFormat の引数のビルド番号を抽出して返します。更新プログラムのビルド番号 は Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber の処理です。 |
ビルドの詳細を取得します。 |
ビルドの詳細を取得します。 は、ワークフロー ウィザードで指定したビルドを実行するか、アクセスするために必要なデータを返します。IBuildDetail オブジェクトは BuildDetail の変数に格納されます。 ビルドの詳細を取得します。 は Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail の処理です。テンプレート セット次のプロパティ:
|
ビルドが必要な場合、新しいビルドが Team System のビルド処理に必要かどうかを判定します。条件に該当する場合、ワークフローは ビルドの実行 のシーケンスを実行します。 |
|
ビルドの実行 のシーケンスは、ビルドを開始および完了するようにビルドを待機し、ビルドの場所を設定します。 |
|
ビルド ワークフローの開始 |
ビルド ワークフローの開始 は、指定されたビルド コントローラーで新しいビルドをキューに配置し、QueueBuildId の変数のキューに入っているビルドの ID を返します。ビルド ワークフローの開始 は RunWorkflow の処理です。テンプレート セット次のプロパティ:
|
担当するビルドの待機 |
担当するビルドの待機 は、ビルドが完了するか、タイムアウト間隔が経過するまで実行を中断します。アクティビティはタイムアウトに達すると、例外がスローされます。アクティビティは ChildBuildDetailの変数の新しいビルドに関する BuildStatus の変数とデータのビルドの状態を返します。担当するビルドの待機 は WaitForWorkflow の処理です。テンプレート セット次のプロパティ値:
|
特定のビルドの場所 |
特定のビルドの場所 は ChildBuildDetail の変数から LabWorkflowParameters の引数の BuildDetails.BuildUri のプロパティにビルドの場所を割り当てます。 |
アプリケーションの配置
更新プログラムの配置の概要 |
更新プログラムの配置の概要 は、ビルドのページに配置先の環境の名前を書き込みます。更新プログラムの配置の概要 は WriteDeploymentInformation の処理です。 |
GetBuildLocationAndBuildNumber |
GetBuildLocationAndBuildNumber は BuildLocation の変数にビルドの格納場所を返します。GetBuildLocationAndBuildNumber は GetBuildLocationAndBuildNumber の処理です。テンプレート セット次のプロパティ:
|
必要なビルドの位置の計算 の条件に該当する ビルド パスの計算 は、格納場所にビルド構成とプラットフォームのサブフォルダーを追加します。 |
|
選択したユーザーが環境を格納する場合 は、環境がライブラリに格納されている環境が配置される、エラーを示す の例外がスローされることを確認します。 |
|
ラボ環境を取得します。 |
ラボ環境を取得します。 は LabEnvironmentUri の変数に環境の URI を返します。ラボ環境を取得します。 は GetLabEnvironmentUri の処理です。テンプレート セット次の properities:
|
スナップショットの復元 は、環境がクリーンなスナップショットに復元することをユーザーが要求したかどうかを判断します。条件に該当する場合、スナップショットの復元 のシーケンスは実行されます; それ クリーン スナップショットが未指定 は、ビルドの概要に警告メッセージを書き込みます。 |
|
スナップショットの復元 のシーケンスでは、スナップショットの詳細の取得 は、スナップショットの ID を計算し、ラボ環境をスナップショットに復元、復元を実行します。 |
|
スナップショットの詳細の取得 |
スナップショットの詳細の取得 は GetLabEnvironmentSnapshotId の処理です。テンプレート セット次のプロパティ:
|
ラボ環境をスナップショットに復元 |
ラボ環境をスナップショットに復元 は RestoreLabEnvironment の処理です。テンプレート セット次のプロパティ:
|
配置が必要な場合 は、ユーザーが配置を要求したかどうかを判断します。 |
|
条件に該当する場合、配置を実行 のシーケンスが実行されます。 |
|
準備が整ったワークフロー機能の待機 |
準備が整ったワークフロー機能の待機 は環境のワークフロー機能が準備ができているか、タイムアウト間隔に到達するまで実行を中断します。タイムアウト間隔が経過した場合に、例外がスローされます。準備が整ったワークフロー機能の待機 は WaitForWorkflowCapabilityServices の処理です。テンプレート セット次のプロパティ:
|
配置スクリプトの実行 は LabWorkflowParameters の引数の DeploymentDetails.Scripts のプロパティ一覧に含まれる各配置スクリプトの ラボ システムのスクリプトの実行 のシーケンスを実装します。 |
|
ラボ システムのスクリプトの実行 のシーケンスと、環境の仮想マシンの指定したスクリプトを実行します。ラボ システムのスクリプトの実行 は、次の変数を宣言しています:
|
|
初期化のエージェントのタグおよび配置スクリプト |
初期化のエージェントのタグおよび配置スクリプト は、スクリプトのマクロとタグを展開し、ScriptDetails のオブジェクトの結果を返します。初期化のエージェントのタグおよび配置スクリプト は InitializeAgentSpecAndEnvironmentVariables の処理です。テンプレート セット次の値:
|
ラボ エージェントのスコープ |
ラボ エージェントのスコープ は、ラボ エージェントがインストールされているかどうかを判断します、次に、スクリプトを実行するに 配置スクリプトを実行する を対象の仮想マシンで実行されます。例外は、スクリプトのいずれかがコンピューターに失敗するとがスローされます。ラボ エージェントのスコープ は Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScopeの処理です。テンプレート セット次のプロパティ:
|
配置スクリプトを実行する |
配置スクリプトを実行する は、対象の仮想マシンの配置スクリプトを実行します。配置スクリプトを実行する は RunDeploymentScript の処理です。テンプレート セット次の値:
|
成功するアプリケーションの配置 |
ビルドの概要に成功するアプリケーションの配置 の書き込み情報。成功するアプリケーションの配置 は WriteDeploymentInformation の処理です。 |
配置後スナップショット は、環境のスナップショットが配置後に保存するには、ユーザーが要求したかどうかを判断します。この条件に該当する場合、配置後のスナップショットの取得 のシーケンスが実行されます。それ以外 配置後のスナップショットが未指定 はログに警告メッセージを書き込みます。 |
|
配置後のスナップショットの取得 のシーケンス 配置後のスナップショットの取得 は、次の変数を宣言しています: |
|
CHECK スナップショットの名前 は、スナップショットの名前が指定されているかどうかを判定します。条件に該当する場合、指定した名前が使用されます; は既定値が使用されます。 |
|
配置後スナップショットの取得 |
配置後スナップショットの取得 は、スナップショットを作成する SnapshotLabEnvironment の処理です。テンプレート セット次のプロパティ:
|
成功するスナップショットを取得します |
成功するスナップショットを取得します は、ビルドの概要にスナップショットの名前を書き込みます。成功するスナップショットを取得します は WriteDeploymentInformation の処理です。 |
スナップショットへのリンクの追加された接続 |
スナップショットへのリンクの追加された接続 は、ビルドの概要にスナップショットの URL を書き込みます。スナップショットへのリンクの追加された接続 は WriteDeploymentInformation の処理です。 |
実行中のテスト
環境でテストを実行する は、自動テストが要求されたかどうかを判定します。条件に該当する場合、テストの実行(T) のシーケンスが実行されます。 |
|
テストの実行 テストの実行(T) は、次の変数を宣言しています:
|
|
テスト機能が準備できるまでの待機 |
テスト機能が準備できるまでの待機 は環境のテスト機能が準備ができているか、タイムアウト間隔に到達するまで実行を中断します。タイムアウト間隔が経過した場合に、例外がスローされます。 テスト機能が準備できるまでの待機 は WaitForTestCapabilityServices の処理です。テンプレート セット次のプロパティ:
|
実行中のテスト |
実行中のテスト は、テストを実行し、テスト結果を返します。実行中のテスト は ExecuteRemoteTestRun の処理です。テンプレート セット次の値:
|
すべてのテストが経過する前 は、条件が満たされるいずれかのテストが失敗したと判断し、ビルドの状態の設定 かどうかを実装します。 |
|
ビルドの状態の設定 |
ビルドの状態の設定 は、ワークフローがアプリケーションのビルドまたは配置が含まれているかどうかを判定します。この条件に該当する場合、部分的に succeded は BuildStatus.PartiallySucceeded の値にワークフローの状態を設定します。それ以外 失敗 は BuildStatus を Failedに設定します。 |