次の方法で共有


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 は、ビルド定義のウィンドウとのラボ ワークフロー パラメーター ウィザードで指定された入力からワークフローのビルド定義のグローバルな引数を初期化します。

Ff652752.collapse_all(ja-jp,VS.110).gif引数

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の列挙値。

アプリケーションの配置ワークフローのシーケンス

アプリケーションの配置ワークフロー

アプリケーション配置ワークフロー の制御シーケンスは全体のビルド、配置、テスト シナリオします。

アプリケーション配置ワークフロー は、次の変数を宣言しています:

  • BuildDetail: IBuildDetail のオブジェクト。

  • LabEnvironmnetUri: String ビルドが配置される環境の URI を指定する。

  • BuildLocation: String ビルドの場所を指定する。

  • SnapshotId: String 仮想マシン スナップショットの識別子を指定する。

  • QueueBuildId: Int32 キューでビルドの識別子を指定する。

ビルドの実行

更新プログラムのビルド番号

更新プログラムのビルド番号 は BuildNumberFormat の引数のビルド番号を抽出して返します。更新プログラムのビルド番号Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber の処理です。

ビルドの詳細を取得します。

ビルドの詳細を取得します。 は、ワークフロー ウィザードで指定したビルドを実行するか、アクセスするために必要なデータを返します。IBuildDetail オブジェクトは BuildDetail の変数に格納されます。

ビルドの詳細を取得します。Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail の処理です。テンプレート セット次のプロパティ:

  • Result は BuildDetail の変数に IBuildDetail オブジェクトを返します。

ビルドが必要な場合のアクティビティ

ビルドが必要な場合、新しいビルドが Team System のビルド処理に必要かどうかを判定します。条件に該当する場合、ワークフローは ビルドの実行 のシーケンスを実行します。

ビルドを実行するアクティビティ

ビルドの実行 のシーケンスは、ビルドを開始および完了するようにビルドを待機し、ビルドの場所を設定します。

ビルド ワークフローの開始

ビルド ワークフローの開始 は、指定されたビルド コントローラーで新しいビルドをキューに配置し、QueueBuildId の変数のキューに入っているビルドの ID を返します。ビルド ワークフローの開始RunWorkflow の処理です。テンプレート セット次のプロパティ:

  • BuildDefinition は LabWorkflowParameters の引数の BuildDetails.BuildDefinitionName のプロパティに設定されます。

  • プロジェクト名 の引数は BuildDetailの変数の TeamProject のプロパティに設定されます。

担当するビルドの待機

担当するビルドの待機 は、ビルドが完了するか、タイムアウト間隔が経過するまで実行を中断します。アクティビティはタイムアウトに達すると、例外がスローされます。アクティビティは ChildBuildDetailの変数の新しいビルドに関する BuildStatus の変数とデータのビルドの状態を返します。担当するビルドの待機WaitForWorkflow の処理です。テンプレート セット次のプロパティ値:

  • AllowPartiallySucceededBuild が true に設定されます

  • BuildDetails は ChildBuildDetail の変数に新しいビルドのデータを返します。

  • MaxWaitTime は無限に設定されます。

  • QueueBuildId は、ビルドの QueueBuildId の変数のキュー ID を返します。

特定のビルドの場所

特定のビルドの場所 は ChildBuildDetail の変数から LabWorkflowParameters の引数の BuildDetails.BuildUri のプロパティにビルドの場所を割り当てます。

アプリケーションの配置

更新プログラムの配置の概要

更新プログラムの配置の概要 は、ビルドのページに配置先の環境の名前を書き込みます。更新プログラムの配置の概要WriteDeploymentInformation の処理です。

GetBuildLocationAndBuildNumber

GetBuildLocationAndBuildNumberBuildLocation の変数にビルドの格納場所を返します。GetBuildLocationAndBuildNumberGetBuildLocationAndBuildNumber の処理です。テンプレート セット次のプロパティ:

  • BuildDetails は LabWorkflowParameters の引数に含まれる BuildDetails のオブジェクトに設定されます

  • BuildNumber は BuildNumber の変数にビルド番号を返します。

  • Result は BuildLocation の変数にビルド位置を返します

  • SelectedBuild はビルド サーバーでビルドのデータを含む SelectedBuildDetail の変数への IBuildDetail のオブジェクトを返します。

必要なビルド位置を計算するアクティビティ

必要なビルドの位置の計算 の条件に該当する ビルド パスの計算 は、格納場所にビルド構成とプラットフォームのサブフォルダーを追加します。

ユーザーが格納済み環境を選択した場合のアクティビティ

選択したユーザーが環境を格納する場合 は、環境がライブラリに格納されている環境が配置される、エラーを示す の例外がスローされることを確認します。

ラボ環境を取得します。

ラボ環境を取得します。 は LabEnvironmentUri の変数に環境の URI を返します。ラボ環境を取得します。GetLabEnvironmentUri の処理です。テンプレート セット次の properities:

  • LabEnvironmentName は LabWorkflowParameters の引数の EnvironmentDetails.LabEnvironmentName のプロパティの値に設定されます。

  • プロジェクト名 は BuildDetail の変数の TeamProject のプロパティの値に設定されます。

  • Result は LabEnvironmentUri の変数にラボ環境の URI を返します。

  • TeamProjectLabLocationName は LabWorkflowParameters の引数の EnvironmentDetails.HostGroupName のプロパティの値に設定されます。

  • TfsServerUrl は null に設定されます。

スナップショットを復元した場合のアクティビティ

スナップショットの復元 は、環境がクリーンなスナップショットに復元することをユーザーが要求したかどうかを判断します。条件に該当する場合、スナップショットの復元 のシーケンスは実行されます; それ クリーン スナップショットが未指定 は、ビルドの概要に警告メッセージを書き込みます。

スナップショットを復元するアクティビティ

スナップショットの復元 のシーケンスでは、スナップショットの詳細の取得 は、スナップショットの ID を計算し、ラボ環境をスナップショットに復元、復元を実行します。

スナップショットの詳細の取得

スナップショットの詳細の取得GetLabEnvironmentSnapshotId の処理です。テンプレート セット次のプロパティ:

  • LabEnvironmentUri は LabEnvironmentUri の変数の値に設定されます。

  • Result は SnapshotId の変数にスナップショットの ID を返します。

  • SnapshotName は LabWorkflowParameters の引数の EnvironmentDetails.SnapshotName のプロパティに設定されます。

ラボ環境をスナップショットに復元

ラボ環境をスナップショットに復元RestoreLabEnvironment の処理です。テンプレート セット次のプロパティ:

  • LabEnvironmentUri は LabEnvironmentUriの変数の値に設定されます。

  • SnapshotId は SnapshotIdの変数の値に設定されます。

配置が必要な場合のアクティビティ

配置が必要な場合 は、ユーザーが配置を要求したかどうかを判断します。

配置を実行するアクティビティ

条件に該当する場合、配置を実行 のシーケンスが実行されます。

準備が整ったワークフロー機能の待機

準備が整ったワークフロー機能の待機 は環境のワークフロー機能が準備ができているか、タイムアウト間隔に到達するまで実行を中断します。タイムアウト間隔が経過した場合に、例外がスローされます。準備が整ったワークフロー機能の待機WaitForWorkflowCapabilityServices の処理です。テンプレート セット次のプロパティ:

  • LabEnvironmentUriLabEnvironmentUri の変数の値に設定されます。

  • MaxWaitTime を 20 分に設定されます

  • RepairCapabilityBeforeWaitBegins は false に設定されます。

配置スクリプトを実行するアクティビティ

配置スクリプトの実行 は LabWorkflowParameters の引数の DeploymentDetails.Scripts のプロパティ一覧に含まれる各配置スクリプトの ラボ システムのスクリプトの実行 のシーケンスを実装します。

ラボ システム上でスクリプトを実行するアクティビティ

ラボ システムのスクリプトの実行 のシーケンスと、環境の仮想マシンの指定したスクリプトを実行します。ラボ システムのスクリプトの実行 は、次の変数を宣言しています:

初期化のエージェントのタグおよび配置スクリプト

初期化のエージェントのタグおよび配置スクリプト は、スクリプトのマクロとタグを展開し、ScriptDetails のオブジェクトの結果を返します。初期化のエージェントのタグおよび配置スクリプトInitializeAgentSpecAndEnvironmentVariables の処理です。テンプレート セット次の値:

  • BuildLocation は BuildLocation の変数の値に設定されます。

  • DeploymentScriptDetails は DeploymentDetails.Scripts の反復処理される文字列値に設定されます。

  • LabEnvironmentUri は LabEnvironmentUri 変数の値に設定します。

  • Result は scriptDetails の変数に配置されたスクリプトを返します。

ラボ エージェントのスコープ

ラボ エージェントのスコープ は、ラボ エージェントがインストールされているかどうかを判断します、次に、スクリプトを実行するに 配置スクリプトを実行する を対象の仮想マシンで実行されます。例外は、スクリプトのいずれかがコンピューターに失敗するとがスローされます。ラボ エージェントのスコープMicrosoft.TeamFoundation.Build.Workflow.Activities.AgentScopeの処理です。テンプレート セット次のプロパティ:

  • MaxExecutionTime は無限に設定されます。

  • MaxWaitTime を 5 分に設定されます。

  • ReservationSpec はに設定されます Microsoft.Te: scriptDetails の変数の AgentSpec のプロパティである amFoundation.Build.Client.BuildAgentSpec のオブジェクト。

配置スクリプトを実行する

配置スクリプトを実行する は、対象の仮想マシンの配置スクリプトを実行します。配置スクリプトを実行するRunDeploymentScript の処理です。テンプレート セット次の値:

  • ScriptDetails は scriptDetails の変数の値に設定されます。

  • ThrowOnError が true に設定されます。

  • SharedLocationForNetUse は BuildLocation の変数の値に設定されます。

成功するアプリケーションの配置

ビルドの概要に成功するアプリケーションの配置 の書き込み情報。成功するアプリケーションの配置WriteDeploymentInformation の処理です。

配置後のスナップショット

配置後スナップショット は、環境のスナップショットが配置後に保存するには、ユーザーが要求したかどうかを判断します。この条件に該当する場合、配置後のスナップショットの取得 のシーケンスが実行されます。それ以外 配置後のスナップショットが未指定 はログに警告メッセージを書き込みます。

配置後のスナップショットを撮るアクティビティ

配置後のスナップショットの取得 のシーケンス

配置後のスナップショットの取得 は、次の変数を宣言しています:

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String テンプレート セット BuildDetails の変数の BuildNumber のプロパティの値が既定値です。

スナップショット名を確認するアクティビティ

CHECK スナップショットの名前 は、スナップショットの名前が指定されているかどうかを判定します。条件に該当する場合、指定した名前が使用されます; は既定値が使用されます。

配置後スナップショットの取得

配置後スナップショットの取得 は、スナップショットを作成する SnapshotLabEnvironment の処理です。テンプレート セット次のプロパティ:

  • LabEnvironmentUri は LabEnvironmentUri の変数の値に設定されます。

  • SnapshotChainId は PostDeploymentSnapshotChainId の変数にスナップショットの ID を返します。

  • SnapshotName は PostDeploymentSnapshotName の変数の値に設定されます。

成功するスナップショットを取得します

成功するスナップショットを取得します は、ビルドの概要にスナップショットの名前を書き込みます。成功するスナップショットを取得しますWriteDeploymentInformation の処理です。

スナップショットへのリンクの追加された接続

スナップショットへのリンクの追加された接続 は、ビルドの概要にスナップショットの URL を書き込みます。スナップショットへのリンクの追加された接続WriteDeploymentInformation の処理です。

実行中のテスト

環境上でテストを実行するアクティビティ

環境でテストを実行する は、自動テストが要求されたかどうかを判定します。条件に該当する場合、テストの実行(T) のシーケンスが実行されます。

テストを実行するアクティビティ

テストの実行

テストの実行(T) は、次の変数を宣言しています:

  • TestCapabilityInfo: Microsoft.TeamFoundation.Lab.Client.TestingCapabilityInformation.

  • TestResults: Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics.テンプレート セットの新しい TestRunStatistics オブジェクトへの既定値です。

テスト機能が準備できるまでの待機

テスト機能が準備できるまでの待機 は環境のテスト機能が準備ができているか、タイムアウト間隔に到達するまで実行を中断します。タイムアウト間隔が経過した場合に、例外がスローされます。

テスト機能が準備できるまでの待機WaitForTestCapabilityServices の処理です。テンプレート セット次のプロパティ:

  • LabEnvironmentUri は LabEnvironmentUri の変数の値に設定されます。

  • MaxWaitTime を 20 分に設定されます。

  • RepairCapabilityBeforeWaitBegins は false に設定されます。

実行中のテスト

実行中のテスト は、テストを実行し、テスト結果を返します。実行中のテストExecuteRemoteTestRun の処理です。テンプレート セット次の値:

  • MaxWaitTime は無限に設定されます。

  • BuildNumber は BuildNumber の変数の値に設定されます。

  • TestDirectory は BuildLocation の変数の値に設定されます。

  • LabEnvironmentUri は LabEnvironmentUri の変数の値に設定されます。

  • TestParameters は LabWorkflowParameters のオブジェクトに含まれる TestParameters のオブジェクトに設定されます。

  • TestResults の変数にテスト結果を含むResult Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails オブジェクトを返します。

  • タイトル は BuildDetail の変数の BuildNumber のプロパティの値にテストの実行の名前を設定します。

すべてのテストが成功しなかった場合のアクティビティ

すべてのテストが経過する前 は、条件が満たされるいずれかのテストが失敗したと判断し、ビルドの状態の設定 かどうかを実装します。

ビルドの状態の設定

ビルドの状態の設定 は、ワークフローがアプリケーションのビルドまたは配置が含まれているかどうかを判定します。この条件に該当する場合、部分的に succededBuildStatus.PartiallySucceeded の値にワークフローの状態を設定します。それ以外 失敗 は BuildStatus を Failedに設定します。

参照

概念

Lab Management ワークフロー アクティビティ