Team Foundation ビルド アクティビティ
Team Foundation ビルド アクティビティは、Team Foundation ビルド システムでビルド処理の基本となるコンポーネントです。これらのアクティビティを使用すると、次に示すカスタム ロジックや特殊なタスクの実行など、チームの要件を満たすカスタム ビルド処理を作成できます。
ほとんどの場合、カスタム ビルド プロセス テンプレートを作成する最良の方法は、既定のテンプレート (DefaultTemplate.xaml) をベースにする方法です。この方法では、要件に合わせて特定の部分をカスタマイズしながら、既に作成された広く役に立つ機能を活用できます。この方法のもう 1 つのメリットとして、このトピックで説明するアクティビティの使用方法の具体的で実践的な例を確認することもできます。ビルド プロセス テンプレートを作成する方法については、「カスタム ビルド プロセス テンプレートの作成と使用」を参照してください。
重要 |
---|
カスタム ビルド処理は、特殊な要件を満たす必要がある場合にのみ作成してください。DefaultTemplate.xaml を使用すると、一般的な多くの要件を満たすビルド処理をすばやく定義できます。詳細については、「既定テンプレートに基づくビルド プロセスの定義」を参照してください。 |
このトピックの内容
必要なアクセス許可
アクティビティの目的別リファレンス
アクティビティのアルファベット順リファレンス
必要なアクセス許可
Team Foundation ビルド アクティビティを使用する手順を実行するには、次のアクセス許可を [許可] に設定する必要があります。
ビルド定義の編集
関連するバージョン コントロール ディレクトリ (チーム プロジェクトの BuildProcessTemplates サブディレクトリなど) のチェックアウトおよびチェックイン
ビルドをキューに挿入
詳細については、「Team Foundation Server のアクセス許可」を参照してください。
アクティビティの目的別リファレンス
基本的なタスクを実行する
環境変数の値を取得する
Null 値の変数をテストする
ワークスペース内のファイルのパスを取得する
ディレクトリを操作する
ビルド エージェントの作業ディレクトリのパスを取得する
ワークスペースにないファイルをダウンロードする
ファイルを検索する
ビルド ログに警告、エラー、メッセージ、およびその他のデータを書き込む
データ ウェアハウスにビルド メタデータを書き込む
ビルド処理を制御する
ビルド エージェントでアクティビティを実行する
名前付きミューテックス構造を使用して、スレッド セーフなプロセスを実装する
理由 (トリガー) に基づいてビルド処理のセクションを制限する
コンパイル、テスト、およびその他のタスクを実行する
MSBuild を使用してバイナリをコンパイルし、コード分析を実行して、その他のタスクを実行する
テストの実行
ビルドが影響を与えるテストのリストを取得する
プロセスを開始する
バージョン コントロールを操作する
変更セットと作業項目をビルドに関連付ける
ゲート変更をチェックインする
チェックイン ポリシーを評価する
バージョン コントロールのファイルにラベルを付ける
シェルブセットのリストを取得する
TfGet
TfResolve
TfShelve
TfUndo
TfUnshelve
TfWorkfold
作業項目を操作する
変更セットと作業項目をビルドに関連付ける
作業項目の作成
シンボル データを操作する
バージョン コントロールのパスとバージョンを .pdb ファイルのシンボル データに埋め込む
シンボルを SymStore シンボル ストアに発行する
有用なオブジェクトへの参照を取得する
チーム プロジェクト コレクションのオブジェクトへの参照を取得する
ビルド エージェントのオブジェクトへの参照を取得する
ビルドの詳細のオブジェクトへの参照を取得する
ビルド環境のオブジェクトへの参照を取得する
アクティビティのアルファベット順リファレンス
AgentScope
ApproveRequestForCheckIn
AssociateChangesetsAndWorkItems
CheckInGatedChanges
ConvertWorkspaceItem
ConvertWorkspaceItems
CopyDirectory
CreateDirectory
CreateWorkspace
DeleteDirectory
DeleteWorkspace
DownloadFile
DownloadFiles
EvaluateCheckInPolicies
ExpandEnvironmentVariables
FindMatchingFiles
GenerateRunSettings
GetApprovedRequests
GetBuildAgent
GetBuildDetail
GetBuildDirectory
GetBuildEnvironment
GetCommonLocalPath
GetCommonServerPath
GetImpactedTests
GetPendingChanges
GetRejectedRequests
GetReshelvedShelveset
GetShelvedChanges
GetTeamProjectCollection
GetWorkspace
IndexSources
InvokeForReason
InvokeProcess
IsNotNull<T>
IsNull<T>
LabelSources
LabelWorkspace
MSBuild
MSTest
OpenWorkItem
ParseWorkspaceSpec
PublishSymbols
QueryShelvesets
RejectRequestFromCheckIn
RetryRequest
RetryRequests
RevertWorkspace
RunOnce
RunTests
SetBuildProperties
SharedResourceScope
SyncWorkspace
SynchronizeRequests
TfGet
TfQueryConflicts
TfResolve
TfShelve
TfUndo
TfUnshelve
TfWorkfold
TfsBuild
UpdateBuildNumber
WriteBuildError
WriteBuildInformation<T>
WriteBuildMessage
WriteBuildTestError
WriteBuildWarning
WriteCustomSummaryInformation
基本的なタスクを実行する
Team Foundation ビルドのアクティビティを使用すると、次のタスクを実行できます。
環境変数の値を取得する
ワークスペース内のファイルのパスを取得する
ディレクトリを操作する
ビルド エージェントの作業ディレクトリのパスを取得する
ワークスペースにないファイルをダウンロードする
ファイルを検索する
ビルド ログに警告、エラー、メッセージ、およびその他のデータを書き込む
ビルドに関するメタデータを書き込む
環境変数の値を取得する (ExpandEnvironmentVariables アクティビティ)
ビルド サーバー上の 1 つ以上の環境変数を解決するには、ExpandEnvironmentVariables アクティビティを使用します。このアクティビティが AgentScope シーケンス内にある場合、環境変数はビルド エージェントで読み取られます。それ以外の場合は、ビルド コントローラーで読み取られます。
ExpandEnvironmentVariables の Result (String) プロパティ
操作の結果を返します。たとえば、The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp. のようになります。
ExpandEnvironmentVariables の引数プロパティ
Input (String): 解決する環境変数が含まれる文字列を指定する必要があります。各環境変数は、Windows のパーセント記号表記を使用するのではなく、MSBuild プロパティを指定する形式で記述する必要があります。たとえば、"The temporary directory on machine $(COMPUTERNAME) is $(TEMP)." のように指定します。
AdditionalVariables (IDictionary<TKey, TValue><String,String>): 対応する値に解決する追加の変数が (キーとして) 含まれている IDictionary オブジェクトを指定できます。
ページのトップへ
変数の Null 値をテストする
IsNotNull<T>
IsNotNull<T> アクティビティを使用して、たとえば [値] (Object) プロパティに提供した、実行中の変数である Visual Basic 式が Nullでないかどうかをテストします。テストの結果は [結果]Boolean のプロパティに返されます。
IsNull<T>
IsNull<T> アクティビティを使用して、たとえば [値] (Object) プロパティに提供した、実行中の変数である Visual Basic 式が Nullであるかどうかをテストします。テストの結果は [結果]Boolean のプロパティに返されます。
ワークスペース内のファイルのパスを取得する
各ビルドには、ビルド定義の [ワークスペース] タブで定義されたバージョン コントロール ワークスペースがあります。このワークスペースは、ソース コード ファイルやその他のファイルなど、バージョン コントロール システムから取得する必要のあるすべてのファイルへのアクセスをビルドに提供します。Team Foundation ビルドには、ビルド ワークスペースにあるファイルの操作に使用できる 2 つのアクティビティ (ConvertWorkspaceItem と ConvertWorkspaceItems) が用意されています。
ビルド ワークスペースの詳細については、「ビルド定義の作成」を参照してください。
ヒント |
---|
一般的なシナリオで ConvertWorkspaceItem アクティビティを使用する詳細な手順については、「ビルド システムによってバイナリが配置される場所の制御」を参照してください。 |
ワークスペース内のファイルのパスを取得する (ConvertWorkspaceItem アクティビティ)
サーバー パスをビルド エージェントのローカル パスに変換したり、ビルド エージェントのローカル パスをサーバー パスに変換したりするには、ConvertWorkspaceItem アクティビティを使用します。
ConvertWorkspaceItem の Result (String) プロパティ
変換されたパスを返します。
ConvertWorkspaceItem の引数プロパティ
Input (String): 変換するパスの値を指定する必要があります。
Workspace (Workspace): ファイルが含まれている Workspace への参照を指定する必要があります。ほとんどの場合、このプロパティは、CreateWorkspace アクティビティの Result プロパティで初期化される変数に設定する必要があります。DefaultTemplate.xaml に基づくビルド処理を作成している場合、通常は Workspace 変数を使用します。
[検索の方向]
サーバー パスをローカル パスに変換する:Direction プロパティで ServerToLocal を選択し、Input (String) プロパティでサーバー上のファイルのパスを指定します。
たとえば、チームの共通ユーティリティを格納するディレクトリが $/OurTeam/BuildProcess/Util であるとします。バイナリをコンパイルした後、ScanBinaries.exe ユーティリティを実行するカスタム ビルド処理を作成できます。ビルド定義の [ワークスペース] タブで $/OurTeam/BuildProcess/Util がマップされていれば、Input プロパティに $/OurTeam/BuildProcess/Util/ScanBinaries.exe を指定することで、Result (String) プロパティからユーティリティのローカル パスを取得できます。
ローカル パスをサーバー パスに変換する:Direction プロパティで ServerToLocal を選択し、Input プロパティでビルド エージェント上のファイルのローカル パスを指定します。
ワークスペース内のファイルのパスを取得する (ConvertWorkspaceItems アクティビティ)
サーバー パスをビルド エージェントのローカル パスに変換したり、ビルド エージェントのローカル パスをサーバー パスに変換したりするには、ConvertWorkspaceItems アクティビティを使用します。
ConvertWorkspaceItems の Result (IList<String>) プロパティ
変換されたパスの値を返します。
ConvertWorkspaceItems の引数プロパティ
Input (IEnumerable<T><String>): 変換するパスの値を指定する必要があります。
Workspace (Workspace): ファイルが含まれている Workspace への参照を指定する必要があります。ほとんどの場合、このプロパティは、CreateWorkspace アクティビティの Result プロパティで初期化される変数に設定する必要があります。
ヒント DefaultTemplate.xaml に基づくビルド処理を作成している場合、通常は Workspace 変数を使用します。
Direction: 次のいずれかの値を選択します。
Input プロパティにサーバー パスの値のコレクションを指定し、Result プロパティがローカル パスの値のリストを返すようにする場合は、ServerToLocal を選択します。
Input プロパティにローカル パスの値のコレクションを指定し、Result プロパティがサーバー パスの値のリストを返すようにする場合は、LocalToServer を選択します。
ディレクトリを操作する
Team Foundation ビルドで複数のアクティビティを使用することで、ディレクトリを操作できます。
ヒント |
---|
ビルドのバージョン コントロール ワークスペースの一部であるディレクトリを操作する必要がある場合は、代わりにワークスペース アクティビティを使用してください。詳細については、「ワークスペース内のファイルのパスを取得する」を参照してください。 |
ディレクトリを作成する (CreateDirectory アクティビティ)
ディレクトリを作成するには、CreateDirectory アクティビティを使用します。ディレクトリの名前は、Directory (String) プロパティで指定します。
ディレクトリをコピーする (CopyDirectory アクティビティ)
あるディレクトリから別のディレクトリにすべての内容を再帰的にコピーするには、CopyDirectory アクティビティを使用します。コピー元のディレクトリは Source (String) プロパティで指定し、コピー先のディレクトリは Destination (String) プロパティで指定します。Destination プロパティで指定したディレクトリが既に存在している必要があります。空のディレクトリまたはサブディレクトリはコピーされません。
ディレクトリを削除する (DeleteDirectory アクティビティ)
ディレクトリを削除するには、DeleteDirectory アクティビティを使用します。ディレクトリの名前は、Directory (String) プロパティで指定します。削除するディレクトリにサブディレクトリが含まれている場合は、Recursive (Boolean) プロパティを True に設定する必要があります。設定しないと、ビルドに失敗します。
ビルド エージェントの作業ディレクトリのパスを取得する (GetBuildDirectory アクティビティ)
ビルド エージェントの作業ディレクトリのリテラル パスを取得するには、GetBuildDirectory アクティビティを使用します。パスは Result (String) プロパティから取得できます。このアクティビティは、AgentScope アクティビティ内でのみ使用できます。
ページのトップへ
パス データを操作します。
GetCommonLocalPath アクティビティ
GetCommonLocalPath アクティビティを使用して、1 つ以上のローカル フォルダーの最下位の共通親フォルダーへのパスを取得します。たとえば、LocalItems (IEnumerable<String>) を次のように指定します。
{“c:\Code\Fabrikam-3\TestScrum\Main\FabrikamFiber.CallCenter”, “c:\Code\Fabrikam-3\TestScrum\Main\lib”}
すると結果 (String) は次のように返されます。
c:\Code\Fabrikam-3\TestScrum\Main
GetCommonServerPath アクティビティ
GetCommonServerPath アクティビティを使用して、1 つ以上のローカル フォルダーの最下位の共通親フォルダーへのパスを取得します。たとえば、ServerItems (IEnumerable<String>) を次のように指定します。
{“$/TestScrum/Main/FabrikamFiber.CallCenter”, “$/TestScrum/Main/lib”}
すると結果 (String) は次のように返されます。
$/TestScrum/Main
ワークスペースにないファイルをダウンロードする
1 つ以上のファイルをダウンロードするには、DownloadFiles アクティビティを使用します。DownloadFile アクティビティは無視してください。
DownloadFiles アクティビティ
バージョン コントロールから 1 つ以上のファイルをダウンロードするには、DownloadFiles アクティビティを使用します。
ヒント |
---|
ダウンロードするファイルがビルド ワークスペースにある場合は、ConvertWorkspaceItem アクティビティを使用してそれらのファイルにアクセスする必要があります。 |
DownloadFiles の引数プロパティ
LocalPath (String) 次のように値を指定する必要があります。
1 つのファイルをダウンロードする場合は、ローカル パスと、ダウンロードするファイルのローカル コピーに付ける名前を指定します。たとえば、"c:\Docs\readme.txt" と指定します。
複数のファイルをダウンロードする場合は、ファイルのダウンロード先となるディレクトリのローカル パスを指定します。たとえば、"c:\Docs\" と指定します。
ServerPath (String) 次のように値を指定する必要があります。
1 つのファイルをダウンロードする場合は、サーバー パスと、ダウンロードするファイルの名前を指定します。たとえば、"$/Docs/readme.txt" と指定します。
複数のファイルをダウンロードする場合は、ダウンロードするファイルが存在するディレクトリのサーバー パスを指定します。たとえば、"$/Docs/" と指定します。
Recursion (RecursionType):
OneLevel: ServerPath プロパティで指定したディレクトリのファイルをダウンロードします。
Full: ServerPath プロパティで指定したディレクトリのファイルと、すべてのサブディレクトリにあるすべてのファイルをダウンロードします。
Version (String): バージョン指定を行うことができます。現在のバージョンをダウンロードするには、このプロパティを Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString のままにします。バージョン指定の詳細については、「コマンドラインの構文」を参照してください。
DeletionID (Int32): このプロパティは、バージョン コントロールから削除されたファイルをダウンロードする場合のみ指定する必要があります。コマンド プロンプトで tf dir /deleted と入力することにより、この値を対話形式で取得できます (詳細については、「Dir Command」を参照してください)。ただし、Team Foundation ビルドには DeletionID を取得するための組み込みアクティビティが用意されていません。このプロパティを使用するには、この機能を提供するカスタム アクティビティを入手または作成する必要があります。
ページのトップへ
DownloadFile アクティビティ
DownloadFile アクティビティは無視してください。DownloadFiles アクティビティが、1 つ以上のファイルをダウンロードする最も簡単な方法です。
ファイルを検索する (FindMatchingFiles アクティビティ)
ファイルを検索するには、FindMatchingFiles アクティビティを使用します。MatchPattern (String) プロパティで検索条件を指定します。このプロパティでは、次の要素を含む引数を指定できます。
Directory の GetFiles(String, String) メソッドの searchPattern 引数でサポートされる構文。
再帰的な検索を指定する **。次に例を示します。
ソース ディレクトリからテキスト ファイルを検索するには、MatchPattern プロパティに、String.Format("{0}\**\*.txt", SourcesDirectory) のような値を指定します。
ソース ディレクトリから、txtfiles という名前の 1 つ以上のサブディレクトリにあるテキスト ファイルを検索するには、MatchPattern プロパティに String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory) のような値を指定します。
Result (IEnumerable<T><String>) プロパティで、演算の結果を収集します。
ビルド ログに警告、エラー、メッセージ、およびその他のデータを書き込む
WriteCustomSummaryInformation
WriteCustomSummaryInformation アクティビティを使用して、メッセージをビルドの概要に書き込むと、ユーザーのビルド結果ウィンドウにこれが表示されます。
WriteCustomSummaryInformation の引数プロパティ
メッセージ (String): ビルドの概要に表示するメッセージを指定する必要があります。
次の構文の 1 つを使用して、メッセージにハイパーリンクを含めることができます。
[link text](url) [link text] (url)
次に例を示します。
For the latest operation status, see [Fabrikam Fiber Ops] (http://intranet.fabrikam.com/ops/status).
SectionDisplayName (String): メッセージが表示されるセクションの名前を指定する必要があります。複数の WriteCustomSummaryInformation インスタンスの同じ SectionKey 値で別の SectionDisplayName 値が指定されている場合、システムはビルド プロセス テンプレートの最初のインスタンスの SectionDisplayName を使用します。
SectionKey (String): メッセージが表示されるセクション名の識別子を指定する必要があります。指定した値は NameProperty の説明にある規則に従う必要があります。
たとえば、2 つのインスタンスの WriteCustomSummaryInformation に “MySection” の SectionKey 値を実装すると、ビルドが処理されたときに、両方のメッセージがビルド概要の同じセクションに表示されます。
SectionPriority (Int32): セクションの優先順位を指定できます。指定すると、ビルドの概要でのセクションの相対位置が決定されます。値が小さいほど、概要の上位にセクションが表示されます。複数の WriteCustomSummaryInformation インスタンスの同じ SectionKey 値で別の SectionPriority 値が指定されている場合、システムはビルド プロセス テンプレートの最初のインスタンスの SectionPriority 値を使用します。
ページのトップへ
WriteBuildMessage アクティビティ
ビルド ログに情報メッセージを書き込むには、WriteBuildMessage アクティビティを使用します。Message (String) プロパティでメッセージを指定する必要があります。Importance プロパティ (BuildMessageImportance) の値を変更することで、メッセージの重要性を示すこともできます。
ヒント |
---|
|
WriteBuildWarning アクティビティ
ビルド ログに警告メッセージを書き込むには、WriteBuildWarning アクティビティを使用します。警告は、ビルド結果ウィンドウに黄色の感嘆符付きで表示されます。Message (String) プロパティでメッセージを指定する必要があります。
ビルドの警告は、チームが詳細度を "最小" 以上に設定したときにのみ記録されます。詳細については、「ビルド情報の管理と詳細度の制御」を参照してください。
WriteBuildError アクティビティ
ビルド ログにビルド エラー メッセージを書き込むには、WriteBuildError アクティビティを使用します。エラーは、ビルド結果ウィンドウに赤色の感嘆符付きで表示されます。エラーがビルド ログに書き込まれると、ビルドは最高でも Partially Succeeded に分類されます。Message (String) プロパティでメッセージを指定する必要があります。
エラーは、詳細度の設定に関係なく常に記録されます。詳細については、「ビルド情報の管理と詳細度の制御」を参照してください。
WriteBuildTestError アクティビティ
ビルド ログにテスト エラー メッセージを書き込むには、WriteBuildTestError アクティビティを使用します。エラーは、ビルド結果ウィンドウに赤色の感嘆符付きで表示されます。エラーがビルド ログに書き込まれると、ビルドは最高でも Partially Succeeded に分類されます。Message (String) プロパティでメッセージを指定する必要があります。
エラーは、詳細度の設定に関係なく常に記録されます。詳細については、「ビルド情報の管理と詳細度の制御」を参照してください。
WriteBuildInformation<T> アクティビティ
オブジェクトをビルド ログに書き込むには、WriteBuildInformation<T> アクティビティを使用します。ユーザーがビルド結果ウィンドウでログを表示すると、リフレクションを使用してオブジェクトがレンダリングされます。
WriteBuildInformation<T> の引数プロパティ
Value (Object): ビルド ログに書き込むオブジェクトを指定する必要があります。オブジェクトがビルド結果ウィンドウにレンダリングされるようにするには、オブジェクトに IBuildInformationNode を実装し、Type を次のいずれかの InformationTypes 値に設定する必要があります。
ActivityProperties
ActivityTracking
AgentScopeActivityTracking
BuildError
BuildMessage
BuildProject
BuildStep
BuildWarning
ExternalLink
OpenedWorkItem
ParentToBuildDetail: False を指定すると、このオブジェクトの親をこのアクティビティの親にすることができます。True を指定すると、親を IBuildDetail オブジェクトにすることができます。
このプロパティにより、情報がビルド結果ウィンドウにどのように表示されるかが決まります。False を指定した場合、情報はインデントされ、WriteBuildInformation<T> アクティビティの前後にある、同じレベルの他のアクティビティの出力に合わせて整列されます。True を指定した場合、情報はインデントされません。
ページのトップへ
データ ウェアハウスにメタデータを書き込む
ビルドに関するメタデータをデータ ウェアハウスに書き込むことができます。
ビルド番号を書き込む (UpdateBuildNumber アクティビティ)
ビルドに関する主要なデータ ポイントを書き込む (SetBuildProperties アクティビティ)
ヒント |
---|
書き込むメタデータがこれらのアクティビティによりサポートされていない場合、GetBuildDetail アクティビティを使用して IBuildDetail オブジェクトへの参照を取得し、その参照を使用することでオブジェクトにデータを直接割り当てることができます。 |
ビルド番号を書き込む (UpdateBuildNumber アクティビティ)
ビルドのビルド番号 (または名前) を設定するには、UpdateBuildNumber アクティビティを使用します。このアクティビティは、次の手順を実行します。
ビルド番号形式を決定する式に基づいてビルド番号を構築します。ビルド処理は通常、ビルド定義の [プロセス] タブのパラメーターにより指定されたワークフロー引数からこの式を受け入れます。
結果値を BuildNumber プロパティに書き込むことで、ビルドのビルド番号 (または名前) を設定します。
UpdateBuildNumber の Result (String) プロパティ
Result: 新しい BuildNumber 値を返します。
UpdateBuildNumber のプロパティ
ページのトップへ
ビルドに関する主要なデータ ポイントを書き込む (SetBuildProperties アクティビティ)
データ ウェアハウス内の各ビルドに関するデータの記憶域を管理する IBuildDetail オブジェクトに主要なデータ ポイントを書き込むには、SetBuildProperties を使用します。このデータの多くは、ビルド結果ウィンドウに表示されます。
SetBuildProperties のプロパティ
PropertiesToSet: 設定するプロパティの名前のチェック ボックスをオンにする必要があります。
BuildNumber (String): ビルドの名前と見なされる、ビルドの BuildNumber を設定できます。
ヒント ビルド定義の [プロセス] タブでユーザーが指定した設定に基づいてこの値を設定する場合は、通常、このプロパティの代わりに UpdateBuildNumber アクティビティを使用します。
CompilationStatus (BuildPhaseStatus): コンパイルのステータス (CompilationStatus) を設定できます (MSBuild アクティビティもこの値を自動的に設定します)。
DropLocation (String): DropLocation プロパティには、格納場所を記録できます。
[!メモ]
このプロパティを設定しても、実際には格納場所は作成されません。このプロパティは、格納フォルダーの場所をデータ ウェアハウスに保存するために使用します。格納フォルダーは、通常、CreateDirectory アクティビティを使用して作成します。
KeepForever (Boolean): ビルド定義の [アイテム保持ポリシー] タブの設定をバイパスして、完了したビルドを無期限に保持する場合は、KeepForever プロパティを True に設定できます。
LabelName (String): LabelName プロパティを設定すると、このビルドのマークに使用したラベルを、バージョン コントロールのソース コード ファイルに記録できます。通常、このプロパティは、LabelWorkspace アクティビティの Name プロパティの値に合わせて設定します。
重要 Team Foundation ビルドで変更セットと作業項目をビルドに関連付けるには、このデータが必要です。このデータを指定しない場合、AssociateChangesetsAndWorkItems アクティビティは失敗します。
LogLocation (String): LogLocation プロパティを使用すると、ビルド処理でログ ファイルを配置するフォルダーの UNC ファイル パスを記録できます。
[!メモ]
多くの場合、カスタム ビルド処理でこのプロパティを使用する必要はありません。このプロパティは、レガシ ビルド処理をサポートするため、主に UpgradeTemplate.xaml ファイルで使用されます。
SourceGetVersion (String): SourceGetVersion プロパティを使用して、ソースが取得されるこのビルドのバージョン仕様を記録できます。
Status (BuildStatus): ビルドの全体的な状態を Status プロパティに記録できます。たとえば、このプロパティを使用すると、ビルドが成功したか失敗したかを示すことができます。
TestStatus (BuildPhaseStatus): TestStatus プロパティを使用して、このビルドで実行されたテストの全体的な状態を記録します。たとえば、このプロパティを使用すると、このビルドで実行したテストが成功したか失敗したかを示すことができます。
ページのトップへ
ビルド処理を制御する
Team Foundation ビルド アクティビティを使用すると、次の方法でビルド処理を制御できます。
ビルド エージェントでアクティビティを実行する
名前付きミューテックス構造を使用して、スレッド セーフなプロセスを実装する
理由 (トリガー) に基づいてビルド処理のセクションを制限する
ビルド エージェントでアクティビティを実行する (AgentScope アクティビティ)
ビルド エージェントで実行するビルド処理の一部を囲むには、AgentScope アクティビティを使用します。
AgentScope の引数プロパティ
エージェントの選択
MaxWaitTime (TimeSpan): ビルド エージェントが使用可能になるまでビルド処理が待機する最大時間を指定できます。値は hh:mm:ss の形式で入力できます。たとえば、最大待機時間として 01:30:45 を指定し、1 時間 30 分 45 秒以内にビルドがビルド エージェントに割り当てられなかった場合、ビルドはタイムアウト エラーで失敗となります。ビルド コントローラーがこのビルド定義を処理するビルド エージェントを検索する時間に制限を設けない場合は、00:00:00 を指定します。
重要 MaxWaitTime プロパティで 0 以外の適切な値を指定することで、ビルド キューをバックアップしなくてもよくなります。
ReservationSpec (AgentReservationSpec): このアクティビティに含まれるアクティビティを処理するビルド エージェントの種類を制限できます。たとえば、AgentScope アクティビティ内のアクティビティの処理に、特定のタグが含まれるビルド エージェントのみ使用することを指定できます。
実行
MaxExecutionTime (TimeSpan): この AgentScope アクティビティが完了するまでに許容される最大時間を指定できます。値は hh:mm:ss の形式で入力できます。たとえば、制限時間として 04:30:15 を指定し、ビルド エージェントの処理が 4 時間 30 分 15 秒後に完了しなかった場合、ビルドはタイムアウト エラーで失敗となります。ビルド エージェントによるビルドの処理に制限時間を設定しない場合は、00:00:00 を指定します。
ヒント MaxExecutionTime プロパティで 0 以外の適切な値を指定することで、ビルド キューをバックアップしなくてもよくなります。
スコープ
- DataToIgnore: このプロパティは無視してください。
ページのトップへ
名前付きミューテックス構造を使用して、スレッド セーフなプロセスを実装する (SharedResourceScope アクティビティ)
名前付きミューテックス (相互排除) 構造を実装して、ビルド処理のセグメントを囲んでも 「スレッド セーフ」になるようにするには、SharedResourceScope アクティビティを使用します。
このアクティビティは一般的に、一度に 1 つのプロセスのみがアクセスできる共有リソースにアクセスする必要があるビルド処理の一部を囲む場合に使用されます。たとえば、ビルドをファイル共有上の 1 つのファイルに指定順で書き込むことができます。この種類のプロセスが正しく機能するようにするには、SharedResourceScope アクティビティの内部に実装する必要があります。
DefaultTemplate.xaml にも別の例があり、次のように、SharedResourceScope アクティビティに PublishSymbols アクティビティの呼び出しが埋め込まれています。
シーケンス (Sequence) >
エージェントで実行 (AgentScope) >
変更セットと作業項目のコンパイル、テスト、および関連付けを試す (TryCatch [Try]) >
シーケンス (Sequence) >
影響を受けたテストの取得、ソースのインデックス作成、およびシンボルの発行 (Parallel) >
SourceAndSymbolServerSettings.IndexSources Or SourceAndSymbolServerSettings.HasSymbolStorePath の場合 (If [Then]) >
開始したビルドに対してソースのインデックスを作成し、シンボルを発行する (InvokeForReason) >
SourceAndSymbolServerSettings.HasSymbolStorePath の場合 (If [Then]) >
シンボルの発行の試行 (TryCatch [Try]) >
シンボル ストアへのアクセスを同期する (SharedResourceScope) >
シンボルの発行 (PublishSymbols)
この構造を移動する方法については、「複雑な Windows Workflow 内の移動」を参照してください。
SharedResourceScope の引数プロパティ
ResourceName (String): 値を指定する必要があります。チーム プロジェクト コレクション内で同じ ResourceName 値を持つ SharedResourceScope アクティビティのインスタンスは、すべて (別のビルド定義テンプレートに含まれている場合でも) 一度に 1 つずつ実行されます。
MaxExecutionTime (TimeSpan): SharedResourceScope アクティビティが完了するまでに許容される最大時間を指定できます。値は hh:mm:ss の形式で入力できます。たとえば、制限時間として 04:30:15 を指定し、SharedResourceScope アクティビティが 4 時間 30 分 15 秒後に完了しなかった場合、ビルドはタイムアウト エラーで失敗となります。SharedResourceScope アクティビティの処理に制限時間を設定しない場合は、値として 00:00:00 を指定します。
ヒント MaxExecutionTime プロパティで 0 以外の適切な値を指定することで、ビルド キューをバックアップしなくてもよくなります。
MaxWaitTime (TimeSpan): ビルド処理が、SharedResourceScope アクティビティの処理をキューで待機する最大時間を指定できます。値は hh:mm:ss の形式で入力できます。たとえば、制限時間として 01:30:45 を指定し、SharedResourceScope アクティビティが 1 時間 30 分 45 秒後までに処理されなかった場合、ビルドはタイムアウト エラーで失敗となります。ビルド処理のキューでの待機に制限時間を設定しない場合は、値として 00:00:00 を指定します。
ヒント MaxWaitTime プロパティで 0 以外の適切な値を指定することで、ビルド キューをバックアップしなくてもよくなります。
ページのトップへ
理由 (トリガー) に基づいてビルド処理のセクションを制限する (InvokeForReason アクティビティ)
特定の理由で実行されたビルドでのみ実行するビルド処理のセグメントを囲むには、InvokeForReason アクティビティを使用します。ビルドの理由は通常、ビルド定義の [トリガー] タブでユーザーが選択したトリガーにより設定されます。Reason プロパティでは、許可する理由の値を 1 つ以上指定できます。詳細については、「ビルド トリガーと理由の指定」を参照してください。
ページのトップへ
コンパイル、テスト、およびその他のタスクを実行する
Team Foundation ビルド アクティビティを使用すると、バイナリをコンパイルしたり、テストを実行したり、その他のタスクを実行したりすることができます。
MSBuild を使用してバイナリをコンパイルし、コード分析を実行して、その他のタスクを実行する
テストの実行
ビルドが影響を与えるテストのリストを取得する
MSBuild を使用してバイナリをコンパイルし、コード分析を実行して、その他のタスクを実行する (MSBuild アクティビティ)
バイナリをコンパイルしたり、コード分析を実行したり、MSBuild に用意されたその他の機能を活用したりするには、MSBuild アクティビティを使用します。
MSBuild の結果
このアクティビティには、結果を返すプロパティがありません。ただし、コンパイル エラーが記録された場合、このアクティビティは CompilationStatus を Failed に設定します。
MSBuild の引数プロパティ
AdditionalVCOverrides (String): GenerateVsPropsFile を True に設定した場合、生成された .vsprops ファイルにこのプロパティの内容が埋め込まれます。
CommandLineArguments (String): MSBuild に渡すコマンド ライン引数を指定できます。
Configuration (String): ビルドする構成を指定できます。たとえば、“debug” または “release” です。
GenerateVSPropsFile (Boolean): このプロパティが True に設定されている場合、MSBuild は標準の .vsprops ファイルを生成して C++ プロジェクトに渡します。このファイルには、C++ プロジェクトの出力ディレクトリと、AdditionalVCOverrides プロパティで指定したすべての内容が含まれます。
LogFile (String): MSBuild が作成するログ ファイルの名前を指定できます。
LogFileDropLocation (String): MSBuild がログ ファイルを格納するディレクトリの完全修飾 UNC パスを指定できます。
MaxProcesses (Int32): MSBuild が作成するプロセスの最大数を指定できます。
OutDir (String): MSBuild がコンパイル済みバイナリを格納するディレクトリを指定できます。詳細については、「ビルド システムによってバイナリが配置される場所の制御」を参照してください。
Platform (String): MSBuild がビルドするプラットフォームを指定できます。たとえば、“Any CPU”、“x86”、または “x64” と指定できます。
Project (String): MSBuild がビルドするソリューションまたはコード プロジェクトを指定できます。
ResponseFile (String): MSBuild が使用する応答ファイルを指定できます。
RunCodeAnalysis (CodeAnalysisOption): コード分析を常に実行するか、一度も実行しないか、プロジェクトの設定に従って実行するかを指定できます。
Targets (IEnumerable<T><String>): ビルドするターゲットを指定できます。
TargetsNotLogged (IEnumerable<T><String>): ProjectStarted イベントを記録しないターゲットを指定できます。
ToolPath (String): ツールのパスを指定できます。
ToolPlatform (ToolPlatform): ツールのプラットフォームを指定できます。現在のオペレーティング システムに基づいてプラットフォームを検出するには、Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto と指定します。
Verbosity (BuildVerbosity): MSBuild が生成するログの詳細度を指定できます。
MSBuild プロパティによって影響を受ける多数の MSBuild オプションの詳細については、「MSBuild コマンド ライン リファレンス」を参照してください。
ページのトップへ
テストを実行する
RunTests アクティビティまたは MSTest アクティビティのいずれかを使用して、テストを実行することができます。
RunTests アクティビティを使用してテストを実行する
アジャイル テスト ランナーを使用してテストを実行するには、RunTests アクティビティを使用します。ビルドが互換性のないプラットフォームを使用してバイナリをコンパイルし、テストする場合は、各プラットフォームのアセンブリに対してこのアクティビティを別々に実行する必要があります。
このテスト ランナーの長所と短所などの詳細については、「ビルド プロセスでのテストの実行」を参照してください。
コア RunTests プロパティ
TestSources (IEnumerable<String>): 実行するテストを含むアセンブリ ファイルの一覧を指定する必要があります。
ExecutionPlatform (ExecutionPlatformType) テスト対象のバイナリのプラットフォームを指定できます。詳細については、「アジャイル テスト ランナー」を参照してください。
ExecutionTimeout (Int32): テスト実行が完了するまでビルド処理が待機する最大時間を指定できます。RunTests アクティビティによるテストの実行に制限時間を設定しない場合は、0 を指定します。
KeepAlive (Boolean): RunTests アクティビティの完了後に、ビルド エージェントに対してアジャイル テスト ランナー処理の実行を続ける場合は、このプロパティを True に設定できます。
RunSettings (String): 説明なし。
TestCaseFilter (String): このプロパティを使用して、テスト ケースのサブセットを実行できます。詳細については、「Visual Studio テスト ランナーで実行されるテストの条件を指定する」を参照してください。
UpdateFrequency (Int32): 説明なし。
UpdateFrequencyTimeout (Int32): 説明なし。
RunTests の発行プロパティ
次のプロパティを使用すると、テスト結果をチームのプロジェクト コレクションに発行できます。
PublishResults (Boolean): テスト結果を発行する場合は、このプロパティを True に設定する必要があります。
Flavor (String): 結果を発行するテストを実行したビルドのフレーバーを指定できます。
Platform (String): 結果を発行するテストを実行したビルドのプラットフォームを指定できます。
RunName (String): テスト実行の名前を指定できます。ビルド処理の顧客には、この名前がビルド結果ウィンドウの概要に表示されます。名前を指定しない場合、名前はシステムによって自動生成されます。
デリゲート
OnTestCompleted: 説明なし。
OnTestRunCompleted: 説明なし。
ページのトップへ
MSTest アクティビティを使用して、テストを実行します。
MSTest.exe を使用してテストを実行するには、このアクティビティを使用します。このテスト ランナーの長所と短所などの詳細については、「ビルド プロセスでのテストの実行」を参照してください。
MSTest のコア プロパティ
最初に、テストを実行する方法を決定し、次に該当するプロパティの値を指定します。
テスト コンテナーでテストを実行するには (推奨される方法)、次のプロパティを使用します。
TestContainers (IEnumerable<String>): 実行するテストのテスト コンテナーを指定する必要があります。このプロパティは、MSTest.exe コマンドの /testcontainer オプションに相当します。詳細については、「/testcontainer」を参照してください。
SearchPathRoot (String): テスト コンテナーとその依存関係を検索するディレクトリのパスのルートを指定できます。値を指定しなかった場合、MSTest アクティビティは一般的な場所でファイルを検索しようとします。
TestSettings (String): 使用するテスト実行構成ファイルを指定できます。このプロパティは、MSTest.exe コマンドの /testsettings オプションに相当します。詳細については、「/testsettings」を参照してください。
テスト リストでテストを実行するには、次のプロパティを使用します。
TestLists (IEnumerable<String>): 実行するテスト リストを指定する必要があります。このプロパティは、MSTest.exe コマンドの /testlist オプションに相当します。詳細については、「/testlist」および「テスト リストの定義によるテストのグループ化」を参照してください。
TestMetadata (String): 実行するテスト リストが含まれるメタデータ ファイルを指定する必要があります。このプロパティは、MSTest.exe コマンドの /testmetadata オプションに相当します。詳細については、「/testmetadata」を参照してください。
MSTest のフィルター処理プロパティ
次のプロパティを使用すると、実行するテストをフィルター処理できます。
Category (String): テスト カテゴリに基づいてテストをフィルター処理できます。このプロパティは、MSTest.exe コマンドの /category オプションに相当します。詳細については、「/category」および「テスト カテゴリの定義によるテストのグループ化」を参照してください。
MaxPriority (Int32): 実行するテストの最も高い優先度を指定できます。優先度がこの値以下のテストだけが実行されます。MinPriority プロパティ以上の正の整数を指定するか、最も高い優先度を指定しない場合は -1 と指定します。
ヒント テストに優先度を割り当てた場合、MinPriority プロパティと MaxPriority プロパティは徹底したテストと高速ビルドの間のバランスを定義するのに役立つ重要な手段となります。
MinPriority (Int32): 実行するテストの最も低い優先度を指定できます。優先度がこの値以上のテストだけが実行されます。MaxPriority プロパティ以下の正の整数を指定するか、最も低い優先度を指定しない場合は -1 と指定します。
TestNames (IEnumerable<String>): 実行するテストの名前を指定できます。このプロパティは、MSTest.exe コマンドの /test オプションに相当します。詳細については、「/test」を参照してください。
MSTest の発行プロパティ
次のプロパティを使用すると、テスト結果をチームのプロジェクト コレクションに発行できます。
Publish (Boolean): テスト結果を発行する場合は、このプロパティを True に設定する必要があります。
Flavor (String): 結果を発行するテストを実行したビルドのフレーバーを指定できます。このプロパティは、MSTest.exe コマンドの /flavor オプションに相当します。詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。
Platform (String): 結果を発行するテストを実行したビルドのプラットフォームを指定できます。このプロパティは、MSTest.exe コマンドの /platform オプションに相当します。詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。
TestConfigId (Int32): 既存のテスト管理構成の ID を指定して、結果を発行するテスト実行に関連付けることができます。このプロパティは、MSTest.exe コマンドの /testconfigid オプションに相当します。詳細については、Visual Studio コマンド プロンプトで MSTest /? を実行します。
TestConfigName (String): 既存のテスト管理構成の名前を指定して、結果を発行するテスト実行に関連付けることができます。このプロパティは、MSTest.exe コマンドの /testconfigname オプションに相当します。詳細については、Visual Studio コマンド プロンプトで MSTest /? を実行します。
MSTest のその他のプロパティ
CommandLineArguments (String): 指定可能なその他のコマンド ライン オプションについては、「MSTest.exe コマンド ライン オプション」を参照してください。
PathToResultsFilesRoot (String): MSTest.exe が結果ファイル (.trx files) を配置するビルド エージェント上のディレクトリのパスのルートを指定できます。
ToolPath (String): 実行する MSTest.exe のバージョンが含まれるディレクトリのパスを指定できます。パスを指定しない場合、Team Foundation ビルドにより、テスト リストまたはテスト コンテナー内のデータに基づいてパスが自動的に決定されます。
ページのトップへ
ビルドが影響を与えるテストのリストを取得する (GetImpactedTests アクティビティ)
現在のビルドでコードの変更を識別し、それらの変更の影響を受けるテストのリストを生成するには、GetImpactedTests アクティビティを使用します。このアクティビティは、影響を受けるテストのリストをデータ ウェアハウスに書き込み、このビルドが完了した後に実行する必要があるテストをテスト チームのメンバーが判断できるようにします。チームがこのデータを使用する方法の詳細については、「コード変更により影響を受けたテストの検索」を参照してください。
[!メモ]
このアクティビティは、ゲート チェックイン ビルドまたはプライベート ビルドには影響を与えません。
必須の条件
GetImpactedTests アクティビティが機能できるのは、次の条件が満たされている場合に限られます。
MSTest アクティビティが、テスト影響データを収集するテスト設定ファイル (TestSettings プロパティで指定) を使用して実行された。自動的に生成される Traceandtestimpact.testsettings ファイルを使用するか、[テストの影響] チェック ボックスがオンになった別のテスト設定ファイルを使用できます。詳細については、「方法: コードの変更後に実行するテストをチェックするためのデータを収集する」を参照してください。
GetImpactedTests アクティビティが、前回のビルドを正常に識別している。詳細については、次のセクションを参照してください。
GetImpactedTests アクティビティで前回のビルドを識別する方法
GetImpactedTests アクティビティは、現在のビルドと前回のビルドを比較することでその結果を生成します。また、このアクティビティは、次のプロセスを使用して前回のビルドを識別します。
BaselineBuildDropLocation プロパティを指定した場合、それらのバイナリを生成したビルドは前回のビルドとして識別されます。
BaselineBuildDropLocation プロパティを指定しない場合、このアクティビティは次のすべての条件を満たす最近のビルドをデータ ウェアハウスで探して前回のビルドを識別します。
ビルドの BuildDefinitionUri が現在のビルドと同じである。
ビルドの Status が Succeeded または PartiallySucceeded のいずれかである。
ビルドに DropLocation が設定されている。
ビルドがゲート チェックイン ビルドまたはプライベート ビルドではない。
GetImpactedTests の Result プロパティ
CodeChanges (CodeChangeList): 今回のビルドと前回のビルドの間にコード内の各メソッドに加えられた変更のリストを返します。メソッドは、Microsoft Intermediate Language (MSIL) レベルで分析されます。
ImpactedTests (TestList): 前回のビルドと今回のビルドの間に加えられたコード変更の影響を受けたテストのリストを返します。
GetImpactedTests の引数プロパティ
[その他]
- Build: ビルドの IBuildDetail オブジェクトを指定する必要があります。GetBuildDetail アクティビティを使用すると、このオブジェクトへの参照を取得できます。
[その他]
Assemblies (IEnumerable<String>): このアクティビティが検査するアセンブリのリストを指定する必要があります。通常、これらのアセンブリは今回のビルドでビルドします。
AssociatedChangesets (IList<T><Changeset>): テスト影響結果と関連付ける変更セットを指定できます。通常、ビルドする変更セットを指定します。これらの変更セットへの参照は、AssociateChangesetsAndWorkItems アクティビティから取得できます。
BinariesRoot (String): アセンブリが依存するバイナリのパスを指定する必要があります。この値は、GetBuildDirectory アクティビティを使用して値を取得できます。
Workspace (Workspace): ビルドのワークスペースへの参照を指定する必要があります。この参照は、CreateWorkspace アクティビティの Result プロパティから取得できます。
BaselineBuildDropLocation (String): GetImpactedTests アクティビティで現在のビルドと比較するための、完了したビルドが存在する格納フォルダーのパスを指定できます。このプロパティを指定しない場合、このアクティビティは前回のビルドのビルド システムをキューに配置しようとします。詳細については、このセクションで前述した「GetImpactedTests アクティビティで前回のビルドを識別する方法」を参照してください。
ページのトップへ
プロセスを開始する (InvokeProcess アクティビティ)
ビルド サーバーでプロセスを開始する (プログラムを実行する) には、InvokeProcess アクティビティを使用します。このアクティビティは、基本的には Start に対するラッパーです。
InvokeProcess の Result (Int32) プロパティ
プロセスから ExitCode を返します。
InvokeProcess の引数プロパティ
FileName (String): 開始するプロセス (実行するプログラム) の FileName を指定する必要があります。たとえば、%ProgramFiles%\ContosoBuildUtils\MarkBins.exe のように指定します。
Arguments (String): プロセスに渡すコマンド ライン引数 (Arguments) を指定する必要があります。
EnvironmentVariables (IDictionary<TKey, TValue><String,String>): 追加の環境変数 (EnvironmentVariables) とその値を指定できます。
OutputEncoding (Encoding): 出力 (StandardOutputEncoding) およびエラー (RedirectStandardError) のストリームの読み取りに使用されるエンコーディングを指定できます。多くの場合、既定値がこのプロパティに最も適しています。
System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
WorkingDirectory (String): プロセスを実行する作業ディレクトリ (WorkingDirectory) を指定できます。
たとえば、コンパイルされたバイナリに対して MarkBins.exe ユーティリティを実行できます。ユーティリティの実行範囲を狭める場合は、GetBuildDirectory を呼び出して、結果をこのプロパティに設定できます。
プロセスから標準出力とエラー出力を表示するには
InvokeProcess アクティビティで、[Double-click to view] (ダブルクリックして表示) をダブルクリックします。
ツールボックスから WriteBuildMessage アクティビティをドラッグして、アクティビティが [標準出力の処理] の下に表示されるようにし、WriteBuildMessage の Message プロパティを stdOutput に設定します。
ツールボックスから WriteBuildError アクティビティをドラッグして、アクティビティが [標準出力の処理] の下に表示されるようにし、WriteBuildMessage の Message プロパティを errOutput に設定します。
バージョン コントロールを操作する
Team Foundation ビルドのアクティビティを使用すると、次のバージョン コントロール タスクを実行できます。
変更セットと作業項目をビルドに関連付ける
ゲート変更をチェックインする
チェックイン ポリシーを評価する
バージョン コントロールのファイルにラベルを付ける
変更セットと作業項目をビルドに関連付ける (AssociateChangesetsAndWorkItems アクティビティ)
完了した各ビルドをコードに追加されたすべての変更セットおよびそれらに関連付けられた作業項目にリンクするには、AssociateChangesetsAndWorkItems アクティビティを使用します。
各ビルド定義には、次の完了したビルドに関連付ける変更セットおよび作業項目を示す固有のレコードがあります。たとえば、Build A と Build B の両方が変更セット 382 をビルドするとします。Build A はキューに配置されて正常に完了しますが、Build B はキューに配置されて失敗します。この場合、変更セット 382 は、現在、正常に完了した Build A と 失敗した Build B にリンクされています。この変更セットは、Build A の次の完了したビルドにはリンクされませんが、Build B の次の完了したビルドにはリンクされます。
AssociateChangesetsAndWorkItems の Result (IList<T><Changeset>) プロパティ
ビルドに関連付けられた変更セットを返します。
AssociateChangesetsAndWorkItems の引数プロパティ
CurrentLabel (String): このプロパティは空のままにします。
LastLabel (String): このプロパティは空のままにします。
UpdateWorkItems (Boolean): 関連付けられた作業項目の Fixed In (修正) フィールドにビルド番号を入力する場合は、このプロパティの値を True に設定できます。それ以外の場合、値を False に設定します。
ページのトップへ
ゲート変更をチェックインする (CheckInGatedChanges アクティビティ)
ゲート チェックイン ビルドをトリガーしたバージョン コントロールのコード変更をチェックインするには、CheckInGatedChanges アクティビティを使用します。このアクティビティは、変更セットに関連付けられた作業項目にもビルドを関連付けます。
[!メモ]
正しく機能するには、テンプレート内の MSBuild アクティビティおよび MSTest アクティビティのすべての実装の後にこのアクティビティを配置する必要があります。
CheckInGatedChanges の Result (Changeset) プロパティ
チェックインする変更が含まれる変更セットを返します。
CheckInGatedChanges の引数プロパティ
IgnoreErrors (Boolean): CompilationStatus プロパティと TestStatus プロパティの両方の値が Succeeded の場合のみファイルをチェックインできるようにするには、このプロパティを False に設定します。これらのプロパティの値に関係なくファイルをチェックインできるようにするには、このプロパティを True に設定します。
[!メモ]
SetBuildProperties アクティビティを使用すると、CompilationStatus プロパティと TestStatus プロパティを設定できます。
UpdateWorkItems (String): 関連付けられた作業項目の Fixed In (修正) フィールドにビルド番号を入力する場合は、この値を True に設定できます。それ以外の場合は False に設定します。
ページのトップへ
チェックイン ポリシーを評価する (EvaluateCheckInPolicies アクティビティ)
ビルド サーバーでチェックイン ポリシーを実行するには、EvaluateCheckInPolicies アクティビティを使用します。このアクティビティは、ビルド定義の [ワークスペース] タブで指定されたフォルダーに適用されたチェックイン ポリシーを実行します。チェックイン ポリシーが失敗し、ビルドの理由が CheckInShelveset (ゲート チェックイン ビルド) または ValidateShelveset (プライベート ビルド) のいずれかの場合、ビルドに失敗します。
重要 |
---|
チェックイン ポリシーは、開発者のクライアント コンピューターではなく、ビルド サーバーで評価されます。 |
このアクティビティの最も効率的な使用方法は、ゲート チェックイン ビルドと同時に使用して、より強力な品質ゲートを適用する方法です。この方法でアクティビティを使用した場合、ユーザーはチェックイン ポリシーをバイパスできなくなります。このアクティビティは、次の種類のチェックイン ポリシーで最も役立ちます。
組み込みの Work Items チェックイン ポリシー
ビルド サーバーで評価するように設計されたカスタム チェックイン ポリシー
このアクティビティは、直接 [MSBuild] と MSTest のアクティビティを使用することで、より効率的にビルドこれらのプロセスができるため、Code Analysis の組み込み Builds またはチェックイン ポリシーの評価に使用できません。実行する。
詳細については、次のリソースを参照してください。
組み込みチェックイン ポリシーについては、「Add Check-In Policies」を参照してください。
カスタム チェックイン ポリシーについては、「How to: Create Custom Check-in Policies in Visual Studio Team Foundation Server (方法: Visual Studio Team Foundation Server でカスタム チェックイン ポリシーを作成する)」を参照してください。
ゲート チェックイン ビルドについては、「変更内容を検証するためのゲート チェックイン ビルド プロセスの定義」を参照してください。
プライベート ビルドについては、「ビルドをキューに配置する」を参照してください。
EvaluateCheckInPolicies の引数プロパティ
- Workspace (Workspace): 評価するワークスペースを指定する必要があります。ほとんどの場合、このプロパティは、CreateWorkspace アクティビティの Result プロパティで初期化される変数に設定する必要があります。DefaultTemplate.xaml に基づくビルド処理を作成している場合、通常は Workspace 変数を使用します。
ページのトップへ
バージョン コントロールのファイルにラベルを付ける
Team Foundation ビルドのアクティビティを使用して、ファイルにラベルを付けることができます。
ビルドするソース コードにラベルを付ける
ファイルにラベルを付ける
ビルドするソース コードにラベルを付ける (LabelWorkspace アクティビティ)
バージョン コントロールのソース コード ファイルにラベルを付けて、特定の完了したビルドに各ファイルのどのバージョンが含まれているかをチームが簡単に判別できるようにする必要があります。ビルド処理にこの手順を含めるには、LabelWorkspace アクティビティを使用します。
LabelWorkspace の引数プロパティ
Name (String): ラベルの名前を指定する必要があります。
Child (LabelChildOption): 指定したラベルに一致するラベルが既に付いている項目を処理する方法を指定できます。このプロパティは、tf label コマンドの /child オプションに相当します。
Workspace (Workspace): このビルドのワークスペースへの参照を指定する必要があります。ほとんどの場合、このプロパティは、CreateWorkspace アクティビティの Result プロパティで初期化される変数に設定する必要があります。DefaultTemplate.xaml に基づくビルド処理を作成している場合、通常は Workspace 変数を使用します。
Comment (String): ラベルのコメントを指定できます。このプロパティは、tf label コマンドの /comment オプションに相当します。
Scope (String): ラベルの範囲を指定できます。このプロパティは、tf label コマンドの @scope 引数に相当します。
tf label パラメーターの詳細については、「Label Command (Team Foundation Version Control)」を参照してください。
ページのトップへ
ファイルにラベルを付ける (LabelSources アクティビティ)
バージョン コントロールのファイルにラベルを付けるには、LabelSources アクティビティを使用します。
ヒント |
---|
LabelWorkspace アクティビティを使用した場合、ビルドするソース コード ファイルに効率的に繰り返しラベルを付けることができます。 |
LabelSources の引数プロパティ
Items (IEnumerable<String>): ラベルを付ける項目を指定する必要があります。各 String は、tf label コマンドの itemspec 引数に相当します。
Name (String): ラベルの名前を指定する必要があります。
Scope (String): ラベルの範囲を指定する必要があります。このプロパティは、tf label コマンドの @scope 引数に相当します。
Recursion (RecursionType): ディレクトリ階層内のすべてのファイルにラベルを付ける場合、Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full を指定できます。または、Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel を指定することもできます。
Version (String): ラベルを付ける項目のバージョンを指定する必要があります。このプロパティは、tf label コマンドの /version オプションに相当します。
Child (LabelChildOption): 指定したラベルに一致するラベルが既に付いている項目を処理する方法を指定できます。このプロパティは、tf label コマンドの /child オプションに相当します。
Comment (String): ラベルのコメントを指定できます。このプロパティは、tf label コマンドの /comment オプションに相当します。
tf label パラメーターの詳細については、「Label Command (Team Foundation Version Control)」を参照してください。
ページのトップへ
シェルブセットの一覧を取得する(QueryShelvesets アクティビティ)
条件を満たすシェルブセットの一覧を取得するには、QueryShelvesets アクティビティを使用します。次に、TfUnshelve アクティビティを使用して、任意のシェルブセットの内容を取得できます。
QueryShelvesets の結果 (IList<T><Shelveset>)
QueryShelvesets の引数プロパティ
VersionControlServer (VersionControlServer): VersionControlServerを指定する必要があります。
TfGet アクティビティ
このアクティビティは、Get コマンド をラップします。
TfResolve アクティビティ
このアクティビティは、Resolve Command をラップします。
TfShelve アクティビティ
このアクティビティは、Shelve コマンド をラップします。
TfUndo アクティビティ
このアクティビティは、Undo コマンド をラップします。
TfUnshelve アクティビティ
このアクティビティは、Unshelve コマンド をラップします。
TfWorkfold アクティビティ
このアクティビティは、Workfold Command をラップします。
作業項目を操作する
Team Foundation ビルドのアクティビティを使用して、作業項目を操作することができます。
変更セットと作業項目をビルドに関連付ける
作業項目の作成
作業項目を作成する (OpenWorkItem アクティビティ)
作業項目を作成するには、OpenWorkItem アクティビティを使用します。
OpenWorkItem の Result (WorkItem) プロパティ
新しい作業項目を返します。
OpenWorkItem の引数プロパティ
AssignedTo (String): 作業項目を割り当てるユーザーを指定する必要があります。
Title (String): 作業項目のタイトルを指定する必要があります。
Type (String): 作業項目の種類を指定する必要があります。一般的な Type 値は、“Bug”、“Issue”、“Task” などです。
Comment (String): 作業項目の履歴にコメントを追加できます。
CustomFields (IDictionary<TKey, TValue><String,String>): 作業項目の他の 1 つ以上のフィールドの値を指定できます。
ページのトップへ
シンボル データを操作する
Team Foundation ビルド の 2 つのアクティビティ (IndexSources および PublishSymbols) を使用することで、シンボル データを操作できます。
これらのアクティビティの一般的な用途は、IntelliTrace デバッグを有効にすることです。IntelliTrace デバッグを有効にする場合、まず IndexSources アクティビティを呼び出してシンボル データを準備し、次に PublishSymbols アクティビティを呼び出してデータを SymStore シンボル ストアに発行する必要があります。
IntelliTrace デバッグの詳細については、「IntelliTrace での履歴のレビューによるコードのデバッグの高速化」を参照してください。
バージョン コントロールのパスとバージョンを PDB ファイルのシンボル データに埋め込む (IndexSources アクティビティ)
バージョン コントロールのパスとバージョンを .pdb ファイルのシンボル データに埋め込むには、IndexSources アクティビティを使用します。
IndexSources の引数プロパティ
FileList (IEnumerable<String>): 各シンボル ファイルの完全パスと名前を指定する必要があります。FindMatchingFiles アクティビティを使用すると、この引数を指定できます。
** を使用すると、再帰的な検索を指定できます。たとえば、MatchPattern プロパティに値 String.Format("{0}\**\*.pdb", BinariesDirectory) を指定して FindMatchingFiles を呼び出すことができます。
ページのトップへ
シンボルを SymStore シンボル ストアに発行する (PublishSymbols アクティビティ)
PDB ファイルのシンボル データを SymStore シンボル ストアに発行するには、PublishSymbols アクティビティを使用します。このアクティビティは、基本的には SymStore.exe に対するラッパーです。SymStore シンボル ストアとその準備方法については、「シンボル データの発行」を参照してください。
重要 |
---|
同時実行ビルドが同じシンボル ファイル共有に発行しようとした場合、データが破損することがあります。このリスクを削減するために、このアクティビティを呼び出すのは SharedResourceScope アクティビティ内のみにする必要があります。 |
PublishSymbols の Result (String) プロパティ
SymStore.exe が返すトランザクション ID を返します。
PublishSymbols の引数プロパティ
FileList (IEnumerable<String>): 各シンボル ファイルの完全パスと名前を指定する必要があります。FindMatchingFiles アクティビティを使用すると、この引数を指定できます。
たとえば、MatchPattern プロパティに値 String.Format("{0}\**\*.pdb", BinariesDirectory) を指定して FindMatchingFiles を呼び出すことができます。
StorePath (String): SymStore シンボル ストアのルート フォルダーの UNC ファイルを指定する必要があります。
CommandLineArguments (String): SymStore.exe に渡すことができるその他の引数のついては、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。
Comments (String): シンボル ストアのトランザクション履歴ファイルに記録されるトランザクション コメントを指定できます。このプロパティは、SymStore.exe コマンドの /c Comment パラメーターに相当します。詳細については、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。
ProductName (String): シンボル ストアのトランザクション履歴ファイルに記録される製品名を指定できます。たとえば、このプロパティをビルド定義名 (Name) に設定できます。ビルド定義名は、GetBuildDetail を呼び出すことで BuildDefinition プロパティから取得できます。このプロパティは、SymStore.exe コマンドの /t Product パラメーターに相当します。詳細については、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。
StoreCompressed (Boolean): この値を True に設定すると、ファイルを圧縮ファイルとしてシンボル ストアに保存できます。それ以外の場合は、ファイルが圧縮されずに格納されます。このプロパティは、SymStore.exe コマンドの /compress パラメーターに相当します。詳細については、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。
Version (String): たとえば、GetBuildDetail を呼び出すことで取得可能なビルド番号 (BuildNumber) にこのプロパティを設定できます。このプロパティは、SymStore.exe コマンドの /v Version パラメーターに相当します。詳細については、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。
ページのトップへ
有用なオブジェクトへの参照を取得する
Team Foundation ビルドのアクティビティを使用することで、有効なオブジェクトへの参照を取得できます。
チーム プロジェクト コレクションのオブジェクトへの参照を取得する (GetTeamProjectCollection アクティビティ)
TfsTeamProjectCollection オブジェクトへの参照をその Result プロパティから取得するには、GetTeamProjectCollection アクティビティを使用します。この初期オブジェクトは重要です。たとえば、このオブジェクトを使用すると、Team Foundation のアプリケーション層サーバーに接続できます。
IBuildAgent オブジェクトへの参照を取得する (GetBuildAgent アクティビティ)
IBuildAgent オブジェクトへの参照をその Result プロパティから取得するには、GetBuildAgent アクティビティを使用します。このアクティビティは、AgentScope アクティビティ内でのみ使用できます。
IBuildDetail オブジェクトへの参照を取得する (GetBuildDetail アクティビティ)
IBuildDetail オブジェクトへの参照をその Result プロパティから取得するには、GetBuildDetail アクティビティを使用します。このオブジェクトを使用すると、現在のビルドに関するデータを取得でき、場合によっては設定できます。
ページのトップへ
BuildEnvironment オブジェクトへの参照を取得する (GetBuildEnvironment アクティビティ)
BuildEnvironment オブジェクトへの参照をその Result プロパティをとおして取得するには、GetBuildEnvironment アクティビティを使用します。このプロパティは通常、次のタスクの実行に使用できます。
ワークフローの現在のセグメントがビルド コントローラーとビルド エージェントのどちらで実行されているかを判別するには、Environment オブジェクトを使用します。
ビルド エージェント上のカスタム アクティビティが含まれるアセンブリのパスを取得するには、CustomAssemblyPath オブジェクトを使用します。
ページのトップへ
カスタム ビルド処理での変更を目的としないアクティビティ
一部のアクティビティは、カスタム ビルド処理で変更できません。
ApproveRequestForCheckIn
このアクティビティは無視してください。
ページのトップへ
CreateWorkspace アクティビティ
このアクティビティは無視してください。
ページのトップへ
DeleteWorkspace
このアクティビティは無視してください。
ページのトップへ
GenerateRunSettings
このアクティビティは無視してください。
ページのトップへ
GetApprovedRequests
このアクティビティは無視してください。
ページのトップへ
GetPendingChanges
このアクティビティは無視してください。
ページのトップへ
GetRejectedRequests
このアクティビティは無視してください。
ページのトップへ
GetReshelvedShelveset
このアクティビティは無視してください。
ページのトップへ
GetShelvedChanges
このアクティビティは無視してください。
ページのトップへ
GetWorkspace
このアクティビティは無視してください。
ページのトップへ
ParseWorkspaceSpec
このアクティビティは無視してください。
ページのトップへ
RejectRequestFromCheckIn
このアクティビティは無視してください。
ページのトップへ
RetryRequest
このアクティビティは無視してください。
ページのトップへ
RetryRequests
このアクティビティは無視してください。
ページのトップへ
RevertWorkspace
このアクティビティは無視してください。
ページのトップへ
RunOnce
現在のリリースでは説明されていません。
SyncWorkspace
このアクティビティは無視してください。
ページのトップへ
SynchronizeRequests
このアクティビティは無視してください。
ページのトップへ
TfsBuild アクティビティ
このアクティビティは無視してください。
ページのトップへ
TfQueryConflicts
このアクティビティは無視してください。
ページのトップへ