2012-04-20 2 views
2

かなり大きなプロジェクトでは、カスタマイズされたプロセステンプレート(XAML)を使用して、gatedビルドを使用しています。この質問の範囲を超えて理由から、私たちのプロセスは1つのSharedResourceScopeを持っているので、複数のビルドは並行して実行されません(私はあなたがAgentスコープでそれを行うはずですが、 SharedResourceScopeのすべて)。TFS2010のビルドキューには、複数のInProgressビルドがあり、時にはそうではない - ロジックは何ですか?

キューに複数のチェックインがあると、それらのすべてが「進行中」状態になり、SharedResourceScopeで1つを除いてすべてが待機します。

  • 人々は、私は、高優先度であることを新たにキューに入れられ、チェックインを設定しても、実際に
  • を実行していること、それが進行中であるすべての人を追い越すことができないビルドを知ることができないこれは、次のことを意味しますSharedResourceScopeを待機しているので、優先度の設定全体がほとんど意味を持ちません。

私はDefaultProcessTemplate.XAMLを使用して実験しましたが、通常は1つのビルドのみが進行中です(ただし、2つのビルドが表示されることもあります)。

質問:

  1. 正確にビルド開始を行い、したがって、「進行中」モードになるのはいつですか?すべてのビルドがすぐに開始され、AgentScope/SharedResourceScopeでブロックされないようにするにはどうすればよいですか?

  2. すべてのビルドが進行しないようにXAMLで作成できるものはありますか? QueryBuildAgentStatusIsBuildRunningSetBuildAgentStatusはあなたに役立つことができることをいくつかに名前を付ける:TFS Build Extensionsを使用して

答えて

2

ビルドコントローラが新しいビルドを開始する能力を持っている場合、ビルドが開始されます。ビルドでは0〜n個のエージェントを使用できるため、コントローラはビ​​ルドを開始する前にエージェントを取得するのを待機しません。コントローラーは、コントローラーのプロパティ(コード:MaxConcurrentBuilds)の「最大同時ビルド数」設定に基づいて、その容量を決定します。 デフォルト設定:「エージェントの数にデフォルト」。

XAMLではこの動作を制御することはできません。

また、TFS2010には修正プログラムに関するバグがあります:KB2567437

0

は、あなたがプロセスを通じて、エージェントの制御を管理することが可能なアクティビティの数を取得します。彼らは今のところ文書化されていないので、それらを動かすために実験しなければなりません。しかし、便利なパッケージに含まれているヘルプファイルがあります。

「進行中」モードについては、ビルドがフリーエージェントを待っていてもこれがステータスであることがわかりました。そのようなビルドのログを確認してください。これはかなり混乱しています。私は、MSが "待機中(ただし開始していない)"モードを追加することを願っています。

関連する問題