ビルドキューの操作
TeamCity では、ビルドキューはトリガーされた、または手動で起動され、開始を待機しているビルドのリストです。TeamCity は、ビルドがアイドル状態になるとすぐに、互換性のあるビルドエージェントに配布します。キューに入れられたビルドは、エージェントで開始された瞬間にエージェントに割り当てられます。ビルドがビルドキューで待機している間は、事前割り当ては行われません。
キューページ
上部のナビゲーションバーからキューページにアクセスします。このページには、実行を待機しているビルドのリストが表示され、各ビルドについて次の情報が表示されます。
キュー内の位置。ビルド結果ページへのリンクとしても機能します。
ソースブランチ名(使用可能な場合)。
階層内のリンク可能なパス: すべての親サブプロジェクトとビルド構成。
開始時間: 推定待機時間。推定時間値にカーソルを合わせると、次の情報を含むツールチップが表示されます。
予想される開始 / 終了時間。
計画されたエージェントへのリンク。
現在のビルドがビルドチェーンの一部であり、それが依存するビルドがまだ完了していない場合、対応するメモが表示されます。これまで実行されたことのないビルドなど、一部のビルドでは、TeamCity は実行時間を推定できないため、ツールチップにそれぞれのメッセージが表示されます。
ビルドをトリガーしたイベントの簡単な説明。
このビルド構成と互換性のあるエージェントの数。エージェントの名前のリンクをクリックしてエージェントページを開くか、下矢印を使用してポップアップメニューに互換性のあるエージェントのリストをすばやく表示できます。
Build Duration Estimates
TeamCity estimates the duration of queued and running builds from finished builds of the same build configuration. These estimates are used to calculate expected start and finish times, show the remaining time for running builds, detect hanging builds, optimize and order the build queue, and select the fastest agent.
When a build configuration runs with different effective settings, TeamCity looks for recent builds with the same settings. Effective settings include custom parameter values specified in the カスタムビルドを実行する dialog, as well as other build configuration settings that can affect the workload.
If TeamCity finds enough matching builds with consistent durations (five builds by default), it uses this matching history for the estimate. Otherwise, it falls back to the recent history of the entire build configuration. As a result, a new or rarely used combination of settings still receives a general estimate, while recurring variants gradually receive estimates based on their own history.
Only finished, non-personal, and non-canceled builds are considered. When TeamCity compares compatible agents, it also uses the history relevant to each agent. Cloud agents started from the same cloud image share this history, so a newly started agent can reuse duration data collected by previous agents from that image.
TeamCity によるビルドキューの最適化
デフォルトでは、TeamCity は次のようにビルドキューを最適化します。
同様のビルドがキューに存在する場合、(同じ変更セットにあり、同じカスタムプロパティを持つ)新しいビルドは追加されません。
自動的にトリガーされたビルドチェーンに、すでにキューに入れられているビルドチェーンよりも多くの変更がある場合、ビルドチェーンの結果の取得を遅らせない限り、後者は自動的にトリガーされたビルドチェーンに置き換えられます(推定期間に基づく)。
ビルドチェーンがキューにある間、TeamCity は、キューに入れられたビルドを同等の開始済みビルドに置き換えようとします。
15 日を超えてキュー内に留まったビルドは、自動的にキャンセルされます (互換性のあるエージェントがない場合など)。
キュービルドのためのエージェント選択
キュービルドを実行できるアイドル状態のエージェントが複数ある場合、TeamCity は次のように最速のエージェントを選択しようとします。
以前にエージェントでビルドが実行されたことがない場合は、CPU ランクを使用してエージェントを選択します。
If builds have previously run on agents, TeamCity compares compatible agents by their estimated build durations using history relevant to each agent. Cloud agents started from the same cloud image share this history. If the estimates are identical, TeamCity uses their CPU ranks.
ビルドキューを並べ替える
TeamCity ユーザーは、キューに入れられたビルドを次のように管理できます。
「キュー内のビルドの順序変更」権限 (デフォルトの「プロジェクト開発者」ロールに含まれています) を持つユーザーは、キュー内のビルドをドラッグアンドドロップして順序を変更したり、ビルドをキューの先頭に移動したりできます。
通常のビルドと個人ビルドを停止してキューから削除します。プロジェクト管理者は、「個人ビルドを停止 / キューから削除」権限により、他のユーザーがトリガーした個人ビルドも停止できます。
システム管理者は、ビルド構成に異なる優先順位を割り当てて、ビルドを昇格または降格することができます。
キューされたビルドの並べ替え
ビルドキュー内のビルドの順序を変更するには、キューページでビルドを目的の位置にドラッグします。特定のビルドをキューの一番上に移動するには、次のいずれかの操作を行います。
キューページのビルドオーダー番号の横にある矢印ボタンをクリックします。

キューに入れられたビルドの概要ページでアクション | 一番上に移動をクリックします。

複合ビルドをキューの先頭に移動すると、ビルド全体がチェーンに昇格されます。実行中の複合ビルドにまだ開始されていない依存ビルドがある場合は、複合ビルドのアクションメニューでキューに入っている依存関係を先頭に移動項目をクリックすることで、明示的にキューの先頭に移動できます。
ビルドキューからのビルドの削除
キューからビルドを削除するには、選択したビルドの横にある除去ボックスにチェックを入れ、削除を確定してください。キューから削除するビルドがビルドチェーンの一部である場合、TeamCity はコメントフィールドに対応するメッセージを表示します。詳細はビルドチェーンを実行の記事を参照してください。
さらに、次のことができます。
アクションメニューからすべての個人ビルドを一度にキューから削除します。
一時停止されたビルド構成の複数のビルドをキューから削除します。
ビルド優先順位の管理
デフォルトでは、ビルドはトリガーされた順序でビルドキューに配置されます。最後にトリガーされたビルドがキューの一番下に追加されます。ビルドの優先度を変更して、定義された優先度と現在キューに入れられているビルドの待機時間に応じた位置でビルドがビルドキューに挿入されるようにすることができます。
優先クラスを作成することで、ビルドの優先順位を制御できます。優先順位クラスは、指定された優先順位を持つビルド構成のセットです (数値が大きいほど優先順位が高くなります。たとえば、priority=2 は priority=1 よりも高くなります)。構成の優先順位が高いほど、ビルドキューに追加されたときに上位に配置されます。
これらの設定にアクセスするには、キューページの右上隅にある優先度をクリックします。このアクションは、システム管理者のみが使用できることに注意してください。

2 つの定義済み優先クラスがあります: 個人的なとデフォルト、両方とも priority=0 付き:
すべての個人ビルド ( リモート実行またはテスト済みのコミット経由で起動) は、ビルドキューに追加されると、個人的な優先度クラスに割り当てられます。個人ビルドの優先度は変更できます。
デフォルトクラスには、他のクラスに関連付けられていないすべてのビルドが含まれています。これにより、デフォルトよりも低い優先順位でクラスを作成し、いくつかのビルドをキューの末尾に配置することができます。
新しい優先度クラスを作成するには
新しい優先度クラスを作成するをクリックします。
その名前、優先順位(
-100..100の範囲内)、追加の説明を指定します。作成をクリックします。構成の追加をクリックして、このクラスで優先度を定義するビルド構成を指定します。

この設定は、ビルドがキューに追加される場合にのみ考慮されます。優先度の低いビルドが常に実行されるようにするために、TeamCity は各ビルドがキュー内に留まる時間も考慮します。これにより、最近追加された優先度の高いビルドよりも前に、長時間待機していたビルドを優先度の低い状態で実行することができます。以下のアルゴリズムの詳細な説明を参照してください。
ビルド優先アルゴリズム
新しいビルドがキューに追加されるたびに、すべてのビルドの優先順位が再計算され、新しいビルドは i の位置に配置されます。つまり、priority of build at position i-1 \>= priority of new build \> priority of build at position i+1 (キューの先頭は i = 0) となります。
次の式を使用して、キュー内のビルドの優先順位を再計算します。
buildPriority = (timeSpentInTheQueue / estimatedBuildDuration) + buildConfigurationPriority
ビルドが推定ビルド時間に等しい時間だけキュー内で待機すると、その優先度は 1 つ増加します。これにより、優先度の低いビルドが最終的に開始されるようになります。
ビルドキューの一時停止と再開
ビルドキューは手動または自動で一時停止できます。この場合、ビルドは引き続きキューに追加されますが、キューが一時停止されなくなるまで、ビルドはエージェントに割り当てられません。
エージェントを有効 / 無効にする権限 (デフォルトでエージェントマネージャーロールに含まれています) を持つユーザーは、ビルドキューを手動で一時停止 / 再開できます (キューを一時停止することは、サーバー上のすべてのエージェントを無効にすることと同じであるため)。このアクションは、キューページの右上隅で使用できます。
TeamCity サーバーのディスク容量が不足すると、ビルドキューは自動的に一時停止されます。十分な容量が確保されると、キューは自動的に再開されます。
キューが一時停止されると、TeamCity の各ページに一時停止の理由に関する情報を含むメッセージが表示されます。
ビルドキューの最大サイズを制限する
キュー内のビルドの最大数を制限することができます。デフォルトでは、制限は 6000 ビルドです。デフォルト値は、teamcity.buildTriggersChecker.queueSizeLimit 内部プロパティを構成することで変更できます。
キューのサイズが制限に達すると、TeamCity は自動ビルドトリガーを一時停止します。キューのサイズが制限を下回ると、再度有効になります。トリガーが一時停止されている間、すべてのユーザーに警告メッセージが表示されます。
ただし、キューが制限に達して自動トリガーが一時停止された場合でも、ビルドを手動でキューに追加することは可能です。
関連ページ:
ビルドトリガーの設定
ビルド構成が作成されると、実行ボタンをクリックしてビルドを手動でトリガーしたり、トリガーを使用して自動的に開始したりできます。ビルドトリガーは、特定のイベントで新しいビルドを開始するルールです。ビルドはビルドキューに入れられ、実行可能なエージェントが存在する場合に開始されます。ビルド構成の作成 / 編集中に、ビルド設定ページのトリガーセクションを使用してトリガーを構成できます。新しいトリガーを追加をクリックしてトリガー設定を指定します。各トリガーの構成の詳細については、対応するセクションを参照し...
エージェント要件の設定
エージェントの要件は、ビルド構成を実行できるエージェントを指定する条件です。現在存在するすべての要件を表示して新しい要件を作成し、特定の構成を実行できるエージェントを確認するには、ビルド設定 | エージェント要件にアクセスしてください。エージェント要件ビデオガイド:要件構文:エージェント要件は式です。ここは、定義済みまたはカスタム (ユーザー定義) のビルドパラメーターです。例: エージェントにインストールされているオペレーティングシステムを報告するパラメーター。要件では、エージェントがこの特...
ビルドエージェントの詳細の表示
エージェントの状態と情報を表示するには、その名前をクリックするか、エージェントページに移動し、接続、切断、許可されたエージェントのリストでエージェントを見つけて、その名前をクリックします。接続されたエージェントごとに、TeamCity は次の情報を提供します。エージェント概要:状況: エージェントのステータスの詳細。詳細: エージェント名、エージェントのホスト IP アドレス、TeamCity サーバーがエージェントに接続するために使用するポート、エージェントとサーバー間のデータ転送に使用される通...
カスタムビルドの実行
ビルド構成とパイプラインの右上隅には、新しいビルドをトリガーする 2 つのボタンが表示されます。実行 — デフォルト設定で新規ビルドを開始します。カスタムビルドを実行する — ビルド開始前にビルド設定を変更できるダイアログを表示します。この記事では、利用可能なカスタマイズオプションについて説明するとともに、カスタムビルドをトリガーするその他の方法についても触れています。カスタムビルドを実行するダイアログ:このダイアログは、以下のいずれかの場合に TeamCity UI に表示されます。カスタムビル...
ロールと権限の管理
TeamCity のユーザーアクセスレベルは、ユーザーに異なるロールを割り当てて、それぞれの権限を付与することによって処理されます。権限とは、ビルドを実行したり、ビルド構成設定を変更したりするなど、特定の操作を実行するための承認です。ロールとは、1 つまたはすべてのプロジェクトでユーザーに付与できる権限のセットであり、プロジェクトや UI のさまざまな機能へのアクセスを制御します。認証モード:TeamCity 認証は、シンプルモードと per-project モードの 2 つのモードをサポートしま...
コンポジットビルド構成
コンポジットビルド構成は、複数の通常のビルド構成をトリガーし、結果を 1 か所で追跡するように設計された「ステップレス」構成です。重要なポイント:複合構成では、実際の構築ルーチンは実行されません。複合構成では、依存関係からすべての情報が集約され、一元的な方法で表示されます。複合ビルドはビルドキュースロットを占有せず、エージェントを実行する必要もありません。ビルド構成タイプを切り替えるには、「構成設定 | 一般」タブに移動します。サンプル:このチュートリアルでは、複数のビルド構成を作成し、1...