TeamCity オンプレミス 2025.11 ヘルプ

VCS トリガーの設定

VCS トリガーは、TeamCity が構成済みの VCS ルートの新しい変更を検出するたびに新しいビルドを自動的に開始し、保留中の変更の変更を表示します。複数の VCS トリガーをビルド構成に追加できます。

デフォルト設定の新しい VCS トリガーは、ビルド構成に保留中の変更があるとビルドをトリガーします。バージョン管理は、VCS コミットフック(設定されている場合)を尊重する VCS ルートの変更チェック間隔に従ってポーリングされます。チェックアウトルールに一致する変更のみが保留中として表示され、トリガーによって処理されます。短時間内に複数のチェックインが行われ、TeamCity によって同時に検出された場合、1 つのビルドのみがトリガーされます

最後の変更が検出された後、ビルドがキューに追加される前に、変更がない状態でしばらく待機する静止期間を設定できます。

両方のオプションのグローバルデフォルト値は 60 秒で、管理 | グローバル設定ページでサーバーに設定できます。

スナップショットの依存関係の変更に基づいてビルドをトリガーする

ビルドチェーン ( スナップショット依存関係によって相互接続された複数のビルド) がある場合、トリガーはチェーンの最終ビルドで構成する必要があります。これは、下のイメージのパック設定です。

VCS ビルドトリガーには、ビルドチェーンのトリガー動作を変更する別のオプションがあります。このオプションを有効にすると、最終ビルドではなく依存関係で変更が検出された場合でも、ビルドチェーン全体がトリガーされます。

例からビルドチェーンを見てみましょう: pack setup — 依存 — tests — 依存 — compile

Compile test pack

pack setup 構成で VCS トリガーを設定すると、通常、TeamCity が pack setup の変更を検出すると、ビルドチェーン全体がトリガーされます。compile の変更は、compile のみをトリガーし、チェーン全体はトリガーしません。compile の VCS 変更でチェーン全体をトリガーする場合は、チェーン、pack setup の最終ビルド構成に、「スナップショット依存関係の変更をトリガーオプションを有効にした VCS トリガーを追加します。これにより、ビルドの実行順序は変更されませんが、スナップショット依存関係のいずれかに変更があった場合にのみ、ビルドチェーン全体がトリガーされます。この設定では、compile または tests ビルド構成に VCS トリガーは必要ありません。

トリガールールが指定されている場合 ( 以下で説明)、それらはすべての変更 (スナップショット依存関係からの変更を含む) に適用され、ルールに一致する変更のみがビルドチェーンをトリガーします。

詳細は依存関係を構築するページでも参照してください。

チェックインごとのトリガー

このオプションが有効になっていない場合、異なるコミッターによる複数のチェックインが行われる可能性があり、それらが検出されると、TeamCity はこれらすべての変更を含むビルドを 1 つだけキューに追加します。

高速ビルドと十分なビルドエージェントがある場合は、TeamCity に新しいビルドチェックインごとにを起動させて、他の変更が同じビルドに含まれないようにすることができます。
これを行うには、チェックインのたびにビルドを開始するオプションを選択します。同じコミッターからのものである場合は、ビルドに複数のチェックインを含めますオプションを選択すると、TeamCity は保留中の変更の数を検出し、ユーザーごとにグループ化し、単一のユーザーによる変更のみを含むビルドを開始します。

これは、そのような問題が発生した場合に、どの変更がビルドを壊したか、新しいテストの失敗を引き起こしたかを把握できます。

静かな期間の設定

静止期間を指定することで、複数の VCS チェックインで構成される非アトミックチェックインの途中でビルドがトリガーされないようにすることができます。

静止期間とは、最後の VCS 変更が検出されてからビルドがキューに追加されるまでの期間 (秒単位) を TeamCity が維持する期間です。この期間内にビルド構成で新しい VCS 変更が検出されると、新しい変更が検出された時間から期間が再開されます。静止期間内に新しい VCS 変更が検出されなかった場合にのみ、ビルドがキューに追加されます。

TeamCity は、静止期間中に少なくとも 1 回は変更が収集されたことを確認する必要があるため、実際の静止期間はビルド構成の VCS ルート間の変更間隔の最大チェックよりも短くならないことに注意してください。

静止期間は、デフォルト値(60 秒、管理 | グローバル設定ページでグローバルに変更可能)に設定することも、ビルド構成のカスタム値に設定することもできます。

ビルドキューの最適化設定

デフォルトでは、TeamCity はビルドキューを最適化します。つまり、すでにキューに入れられているビルドは、すでに開始されているビルドまたはより最近キューに入れられたビルドに置き換えられます。対応するボックスのチェックを外すと、このデフォルトの動作を無効にすることができます。

VCS トリガールール

トリガールールが指定されていない場合、ビルド構成で検出された変更があればビルドがトリガーされます。VCS ルート設定を変更し、チェックアウトルールを指定することで、検出される変更を制御できます。

ビルドをトリガーする変更を制限するには、VCS トリガールールを使用します。これらのルールはテキスト領域に手動で追加することも (1 行に 1 つ)、新しいルールを追加ボタンを使用してルールを生成することもできます (必要に応じて、下にスクロールしてボタンを表示します)。

Adding trigger rule

各ルールは、「include」 ( + で始まる) または「exclude」 ( - で始まる) のいずれかです。

一般的な構文

単一ルールの一般的な構文は次のとおりです。

+|-[:[user=VCS_username;][root=VCS_root_id;][comment=VCS_comment_regexp]]:Ant_like_wildcard

where:

  • Ant_like_wildcard : 変更されたファイルパスに一致するワイルドカード* および ** パターンのみがサポートされており、? パターンはサポートされていません。ルール内のファイルパスは、エージェントの結果パスに一致する相対パス (/ または \ で始まらない) または VCS ルートを基準とした VCS パスに一致する絶対パス (/ で始まる) にすることができます。変更内の各ファイルについて、最も具体的なルール (最も長いファイルパスに一致するルール) が見つかります。一致する "include "ルールを持つファイルまたは一致する"exclude" ルールを持たないファイルが少なくとも 1 つある場合、ビルドがトリガーされます。

  • VCS_username : 指定した場合、対応する VCS のユーザー名を持つユーザーによって行われた変更のみにルールが制限されます。

  • VCS_root_id : 指定した場合、対応する VCS ルートからの変更のみにルールが制限されます。

  • VCS_comment_regexp : 指定されている場合、VCS コメントに指定されたテキストを含む変更のみにルールを制限します。コメント内のテキストを照合するには、Java 正規表現(英語)パターンを使用します(以下の例を参照)。ルールは、コメントテキストに一致するテキスト部分が含まれている場合に一致します。テキスト全体と一致させるには、^ および $ 特殊文字を含めます。

トリガルールの例

サンプル

説明

+:.

すべてのファイルを含みます

-:**.html

すべての .html ファイルがビルドをトリガーするのを除外します。

-:user = techwriter; root = InternalSVN:/misc/doc/ *.xml

VCS ユーザー techwriter によって Internal SVN という名前の VCS ルートの misc/doc ディレクトリにチェックインされた .xml ファイルによってトリガーされるビルドを除外します(VCS 設定で定義されています)。パスは絶対パス(/ で始まる)であるため、ファイルパスは VCS ルートから一致することに注意してください。

-:lib/ **

ビルドソースの lib ディレクトリ (エージェントに表示される) への更新によってビルドがトリガーされるのを防ぎます。パスは相対パスであるため、ディレクトリに配置されたすべてのファイル (VCS ルートチェックアウトルールの処理によって) によってビルドがトリガーされるわけではないことに注意してください。

-:comment = minor:**

変更チェックのコメントに minor という単語が含まれている場合、ビルドがトリガーされないようにします。

-:comment = ^ oops $:**

コメントが oops 単語のみで構成されている場合、トリガーはありません(Java 正規表現(英語)の原則に従って、パターン内の ^ および $ は、文字列の開始と終了を表します)。

+:comment =#teamcity:**

コメントに #teamcity キーワードが含まれている場合、ビルドをトリガーします。

+:comment =(? s)#teamcity.*#major:**

コメントに #teamcity キーワードと #major キーワードの両方が含まれている場合、ビルドをトリガーします。ここで、(?s)DOTALL パターン(英語)であり、文字 . を行ターミネーターを含む任意の文字と一致させ、複数行コメントをチェックできるようにします。

例: 次のコメントがビルドをトリガーします:

#teamcity the first line #major the second line

ブランチフィルター

さらに読むブランチフィルター

トリガルールとブランチフィルターの組み合わせ

トリガールールとブランチフィルターは AND によって結合され、両方の条件が満たされた場合にのみビルドがトリガーされることを意味します。

例: トリガー規則フィールドにコメントテキストを指定してブランチ指定を指定した場合、コミットが特殊テキストを持ち、ブランチフィルターと突き合わせられたブランチにある場合にのみビルドがトリガーされます。

ブランチマージでビルドを開始する

VCS トリガーはブランチを完全に認識しており、チェックインがブランチで検出されるとビルドをトリガーします。

あるブランチから別のブランチへ変更がマージ / 早送りされるとき、厳密に言えばコードに実際の変更はありません。デフォルトでは、VCS トリガーは次のように動作します。

  • 2 つのデフォルトではないブランチのマージ / 早送り: 同じブランチ内の以前のビルドに関してビルド内の変更が計算されるため、別のブランチ内の同じコミットにビルドがある場合、トリガーはその中でビルドを開始します。別のブランチが同じコミットを指しています。

  • デフォルトのブランチがマージ / 早送りのブランチの 1 つである場合、変更は常にデフォルトのブランチに対して計算されます。デフォルトのブランチに同じリビジョンのビルドがある場合、TeamCity は同じビルドに対して新しいビルドを実行しません。リビジョン。

トリガーされたビルドのカスタマイズ

トリガーの設定のビルドのカスタマイズタブでは、このトリガーによって開始されたビルドのカスタムパラメーターを構成できます。カスタムビルドを実行するダイアログと同様に、ビルドパラメーターの値を上書きし、ビルド前にチェックアウトディレクトリをクリーンアップするかどうかを選択できます。

このタブでは、現在のビルド構成で使用されているパラメーターの値をカスタマイズできます。または、新しいパラメーターを追加することもできます。このパラメーターは、このトリガーによって開始されたビルドでのみ使用できます。現在のビルドに他のビルドとのスナップショットの依存関係がある場合、そのようなパラメーターを使用して、依存関係ビルド構成の特定のプロパティをオーバーライドすることもできます。これには reverse.dep.<dependencyBuildID>.<property> 構文を使用します。

トリガー内でビルドパラメーターを再定義してからパラメーターで元のパラメーターを削除すると、その再定義された値がトリガー自体のプレーンテキストパラメーターに変換されることに注意してください。安全な値をカスタマイズするときは、「パスワード」の種類と一緒に保存された場合にのみ隠され、プレーンテキストに変換された場合に読み取り可能になるため、これを考慮することが重要です。

TeamCity を使用すると、同様のタスクを複数の方法で解決できます。場合によっては、異なるビルド構成を作成することが望ましい場合もあります。例: 同じ構成でカスタム実行が多すぎる場合、TeamCity が各ビルドの正確な期間を予測するのが難しい場合があります。多数の異なるパラメーターを使用してビルドをトリガーする必要がある場合は、ビルド構成テンプレートを作成し、それぞれが独自のパラメーターを持つ複数の構成の青写真として使用することをお勧めします。

2025 年 4 月 07 日

関連ページ:

VCS ルートの設定

VCS ルートは、TeamCity ←→ VCS リポジトリ通信の基礎です。この不可欠な要素は、リポジトリのチェックアウト、コードソースのタグ付け、ビルドステータスの VCS への返信など、さまざまな操作を実行するために必要な VCS プロバイダーへの接続を定義します。VCS ルートには次の情報が保存されます。TeamCity がリモートファイルをプルおよびプッシュするために使用する URL を取得してプッシュします。ブランチ情報: TeamCity が追跡する必要があるリポジトリブランチのリスト...

TeamCity 用の VCS ポストコミットフックの設定

TeamCity は、新しい変更を検出するために、アクティブな各 VCS ルートのターゲットとなるリモートリポジトリを定期的にポーリングします。インストールに数百の VCS ルートがある場合、この継続的なポーリングによりサーバーに大きな負荷がかかる可能性があります。コミット後のフックを設定すると、この負荷を軽減し、新しい変更の検出を高速化できます。この場合、新しいコミットがリモートリポジトリにプッシュされるたびに、VCS プロバイダーは即座に TeamCity に最近の変更を確認するリクエストを送...

VCS チェックアウト規則

VCS チェックアウトルールを使用すると、構成された VCS ルートの一部をチェックアウトし、バージョン管理のディレクトリをビルドエージェントのビルドチェックアウトディレクトリのサブディレクトリにマップすることができます。リポジトリ全体の VCS ルートを定義し、各ビルド構成にその関連部分のみをチェックアウトするように指示することができます。チェックアウトルールは、UI に表示されるビルドの変更と、エージェント上のビルドでチェックアウトされるファイルに影響します。コミットがビルドの VCS ルー...

プルリクエスト

プルリクエストビルド機能は、GitHub、Bitbucket サーバー、Bitbucket クラウド、GitLab、Azure DevOps、JetBrains Space リポジトリのプル (マージ) リクエストとの TeamCity 統合を強化します。共通情報:ビルド構成にプルリクエスト機能を追加すると、次のことが可能になります。ビルド構成の概要ページで、プルリクエストブランチと保留中の変更を表示します。

サービスメッセージ

サービスメッセージは、ビルドに関するコマンド / 情報をビルドスクリプトから TeamCity サーバーに渡す特別に構成されたテキストです。TeamCity、それらはビルドの標準出力ストリームに書き込まれる必要があり、ビルドステップから出力またはエコーされますによって処理されます。例:echo ##teamcity[<messageName> 'value']echo

バージョン管理でのプロジェクト設定の保存

TeamCity では、プロジェクト設定をバージョン管理リポジトリ(VCS)と同期できます。サポートされている VCS は、Git、Mercurial、Perforce、Subversion、Azure DevOps Server(旧 TFS)です。プロジェクト設定を XML 形式または Kotlin 言語で保存し、Kotlin ベースの DSL を使用してプログラムで設定を定義できます。重要なポイント:この機能は何をしますか ? 個々のプロジェクトの設定を XML または Kotlin 形式でリモ...