TeamCity オンプレミス 2025.11 ヘルプ

機能ブランチを使用した作業

分散バージョン管理システム (DVCS) の機能ブランチを使用すると、メインの開発とは独立して機能に取り組み、機能のすべての変更をブランチにコミットし、機能が完了したら変更をメインのブランチにマージできます。このアプローチは、ソフトウェア開発チームに多くの利点をもたらしますが、専用のサポートがない継続的インテグレーションサーバーでは、ビルド構成の重複が頻繁に発生したり、可視性が低下したり、最終的にはプロセスに対する制御が失われるなど、多くの問題も発生します。

機能ブランチの TeamCity サポートは継続的に拡張されており、他の機能の中でも、TeamCity がビルド構成の VCS ルートの特定のブランチの変更を検出するたびに、新しいパーソナルビルドを開始するブランチリモート実行トリガと、ビルドが成功した後にブランチを別のルートにマージする自動マージが含まれます。

サポートされているバージョン管理システム

Git および Mercurial 機能ブランチがサポートされ、Perforce ブランチストリームもサポートされます。

ブランチの設定

DVCS ブランチの使用を開始するには、ブランチ仕様を設定する必要があります。これらの仕様は、変更を監視する必要があるブランチを指定します。

ブランチ仕様を構成すると、TeamCity はこれらのブランチの変更を監視し始めます。ビルド構成に VCS トリガーと一部のブランチでの変更の検出がある場合、TeamCity はこのブランチでビルドをトリガーします。ビルド構成のホームページから、ブランチ名で履歴のフィルタリング、変更ログ、保留中の変更、発行ログを行うこともできます。ブランチ名はカスタムビルドダイアログにも表示されるため、ブランチでもカスタムビルドを手動でトリガーできます。

共通仕様構文

ブランチ仕様を設定するには、一般的な VCS ルート設定を開き、ブランチ仕様フィールドまでスクロールします。各仕様は、特定のブランチを含めるか除外するかを指定するために +: または -: で始まる新しい行で、その後に完全に解決されたブランチ名が続きます。+: 部分は省略できます。

+:refs/heads/ 開発

「開発」ブランチを追跡

-:refs/heads/ サンドボックス

「サンドボックス」ブランチを無視

ワイルドカード

* ワイルドカードを使用すると、類似した名前を持つ複数のブランチを参照できます。

refs/heads/*

既存のすべてのリポジトリ機能ブランチを追跡するデフォルトのルール。

refs/heads/dev-*

トラックには、名前が「dev-」で始まるブランチ、「dev-2024.2」、「dev-2025.1」などが含まれます。

アスタリスク (*) ワイルドカードに一致するブランチ名の部分は、TeamCity ユーザーレベルインターフェースに表示される短いブランチ名 ( 論理ブランチ名とも呼ばれます) になります。行にはオプションの括弧を含めることもできます。括弧が存在する場合、* に一致するシンボルだけでなく、論理名として使用されるパターンの部分を示します。

順序と優先順位

単一の VCS ブランチがブランチ仕様の複数の行と一致する場合、最も具体的な(パターンと一致する文字が最も少ない)最後のルールが適用されます。

つまり、仕様にブランチに一致する正確なパターン(つまり、* ワイルドカードのないパターン)が含まれている場合、最後のそのようなパターンが使用されます。次のような仕様がある場合:

+:refs/heads/release-v1 -:refs/heads/release-v1

その後、最後のパターンが勝ち、ブランチは除外されます。

ワイルドカードを含む 2 つのルールが同じブランチに一致するが競合する場合は、最短の論理名を生成するルールが優先されます。例:

+:refs/heads/*/hotfix -:refs/heads/v1/*

refs/heads/v1/hotfix ブランチの場合、次のルールはあいまいです。

  • 論理名 v1v1/hotfix を含める

  • 論理名 hotfixv1/hotfix を除外する

v1 論理名は hotfix よりも短いため、TeamCity が解決する必要のあるワイルドカード文字が少なくなります。これにより、最初のルールがより具体的になり、優先されます。refs/heads/v1/hotfix ブランチが含まれます。

コメントとサービス表現

ブランチ仕様では、# 文字で始まる表現もサポートされています。仕様に含めるか除外するかのブランチの名前を定義する正規表現とは異なり、これらは特定のタスク用に特別に作成された「サービス」行です。

  • # で始まる行は通常のコメントとして扱われます。

    +:refs/heads/main # Exclude legacy branch. DO NOT REMOVE! -:refs/heads/release-v1
  • #! escape: <YOUR_CHARACTER> 式は、ブランチ名に特殊文字を使用できるようにするエスケープ文字を定義します。例: 「release-(7.1)」ブランチの ブランチ仕様ルールを記述するには、丸括弧をエスケープする必要があります。TeamCity のデフォルトのエスケープシンボルはバックスラッシュ (\) であるため、ブランチ仕様は次のようになります。

    +:release-\(7.1\)

    別のエスケープ文字を使用する場合は、以下のように定義します。

    #! escape: ! +:release-!(7.1!)
  • #! fallbackToDefault: false 式を使用すると、必要なブランチが見つからない場合に、TeamCity がデフォルトのブランチを使用することを禁止できます。例: TeamCity REST API を使用して、存在しないブランチのビルドを開始する場合 (デフォルトでは、この場合、TeamCity はデフォルトのブランチの新しいビルドを実行します)。

    #! fallbackToDefault: false +:included_branch -:excluded_branch

ブランチ固有のビルド構成設定

バージョン管理された設定を使用すると、リポジトリブランチごとに変数設定を含むビルド構成を作成できます。例については、記事ブランチ固有の設定を参照してください。

デフォルトブランチ

DVCS の VCS ルートを設定する場合、デフォルトとして使用するブランチ名を指定する必要があります。デフォルトのブランチには特別な意味があります。

  • これは、ブランチが指定されていない場合、または指定されたブランチがブランチ仕様に含まれていない場合(たとえば、誰かがブランチを選択せずに実行をクリックした場合)に使用するフォールバックブランチです。

  • ビルドおよび変更のシーケンスを表示し、ブランチ作成の瞬間に到達するときに使用できます。

  • デフォルトのブランチでは、スナップショットの依存関係によってリンクされている場合、異なる VCS ルート(たとえば、ルートの 1 つが Git で別のルートが Mercurial の場合)および異なるビルドで異なるブランチを使用できます。最上位のチェーンビルドがデフォルトのブランチでトリガーされると、そのすべての依存関係もそれぞれのデフォルトのブランチでビルドされます。

ブランチフィルターで無効にしない限り、デフォルトのブランチは常に暗黙的にブランチ仕様に含まれます。TeamCity UI では、デフォルトのブランチは ブランチマーカーの暗い背景でマークされます。

ブランチ

TeamCity は、現在の TeamCity ユーザーのコミットに基づいて、ブランチを識別およびグループ化できます。

ブランチフィルターでブランチグループを選択すると、定義された VSC ユーザー名に基づいて、コミットが最後の 100 件の変更に含まれるすべてのアクティブブランチが表示されます。

論理ブランチ名

論理ブランチ名は、ビルドのユーザーインターフェースおよびビルド構成レベルに表示されるブランチ名です。論理ブランチ名は、通常、完全な VCS 固有のブランチ名の一部です。これは、バージョン管理からのブランチ名にブランチ仕様を適用することによって計算されます。

例: ブランチ仕様が次のように定義されている場合:

+:refs/heads/*

その場合、* に一致する部分(たとえば master)は論理的なブランチ名です。

ブランチ仕様パターンが括弧を使用する場合、論理名は括弧内の名前の部分で構成されます。VCS ブランチ refs/heads/v8.1/feature1 の UI に表示される v8.1/feature1 論理名を確認するには、次を使用します。

+:refs/heads/(v8.1/*)

デフォルトのブランチは、すでに暗黙的に含まれているため、ブランチ仕様に含める必要はありません。ただし、UI のデフォルトブランチの短い論理ブランチ名(たとえば、master)が必要な場合は、それをブランチ仕様に含めて、括弧を使用できます。

+:refs/heads/(master)

ビルド

次の 2 つの方法のいずれかで、特定のブランチでビルドを手動で実行できます。

  • ビルドリストで必要なブランチの反対側にある実行をクリックします。

  • カスタムランダイアログを開き、変更タブに移動して、「ブランチをビルドする」ドロップダウンメニューから必要なブランチを選択します。

特定のブランチまたはブランチのセットからビルドを自動的に実行するには、ビルドトリガーを構成します。

ブランチからのビルドは、TeamCity UI で簡単に認識できます。これは、以下の特別なラベルが付けられているためです。

Builds from branches

特定のブランチに関心がある場合は、ブランチ名で履歴をフィルタリングすることもできます。TeamCity は、デフォルトのブランチからのビルドにもブランチラベルを割り当てます。

変更

TeamCity は各ビルドに含まれる変更を表示します。ブランチからのビルドの場合、変更の計算プロセスではブランチが考慮され、ビルドブランチに関連する変更が表示されます。ブランチのビルドの変更は、ビルドのリビジョンからブランチの前のビルドまたはデフォルトのブランチのビルドへの変更として計算されます。
コミットのグラフを含む変更ログは、監視対象のブランチで何が起こっているかを理解できます。

Build changes

グラフの表示オプションをデフォルトで有効にすると、TeamCity はグラフ上にビルドマーカーを表示します。

アクティブブランチ

ブランチが構成されたビルド構成では、ほとんどの UI ページにデフォルトでアクティブなブランチが表示されます。

アクティブなブランチは、最近のアクティビティを持つブランチです。つまり、最近のビルドがあるか、最近のコミットでリポジトリ内に存在します。

アクティビティのしきい値は、ビルド構成パラメーターを介して構成できます。パラメーターは、ビルド構成(1 つのビルド構成のみに影響します)、プロジェクト、内部プロパティ(サーバー全体のデフォルトを定義します)のいずれかで変更できます。構成内のパラメーターは、内部プロパティ内のパラメーターをオーバーライドします。

ブランチは、次の場合にアクティブと見なされます。

  • VCS リポジトリに存在し、最近のコミット(つまり、整数パラメーター teamcity.activeVcsBranch.age.days の値(デフォルトでは 7 日間)よりも経過日数の短いコミット)があります。

  • または、最近のビルド(つまり、整数パラメーター teamcity.activeBuildBranch.age.hours の値よりも経過時間が短いビルド、デフォルトでは 24 時間以内)が存在します。
    ビルドが残っているクローズド VCS ブランチは、最後のビルドから 24 時間後もアクティブとして表示されます。クローズドブランチの表示を削除するには、teamcity.activeBuildBranch.age.hours=0 を設定します。

テスト

TeamCity は、ビルド内で新たに失敗したテストを検出します。また、新規ではないテストについては、どのビルドでテストが失敗し始めたかを確認できます。この機能はブランチにも対応しており、最初のビルドが計算されると、TeamCity は同じブランチのビルドを走査します。

さらに、テスト詳細ページではブランチフィルターが利用可能で、単一のブランチでテストの合格または不合格の履歴を確認できます。

故障状態

ビルド失敗条件ビルドメトリクスが、前回の成功 / 完了 / 固定されたビルドと比較して変更されましたのように設定されている場合、TeamCity は現在のビルドを同じブランチからのビルドと比較しようとします。同じブランチに適切なビルドがない場合は、デフォルトのブランチからのビルドを使用し、それぞれのメッセージをビルドログに追加します。現在、デフォルトのブランチがブランチフィルターによって無効になっている場合、TeamCity はビルド失敗条件を適切に処理できないことに注意してください (関連する問題 TW-74884(英語) を参照)。

トリガー

VCS トリガーはブランチを完全に認識しており、ブランチでチェックインが検出されるとビルドをトリガーします。チェックインごとのトリガー、静止期間、トリガールールなど、すべての VCS トリガーオプションは、ブランチからのビルドで直接使用できます。デフォルトでは、スケジュールおよび完了ビルドトリガーは、デフォルトのブランチでのビルドのみを監視します。

さらに、VCS、スケジュール、完了ビルドトリガーにブランチフィルターを指定できます。

依存関係

ブランチを含むビルド構成に、ブランチを含む他のビルド構成へのスナップショット依存関係がある場合、ビルドの VCS ルートのブランチが同じ論理名を持ち、このブランチが ブランチ仕様によって除外されていない場合、ブランチ内のビルドがトリガーされると、チェーン内の他のビルドにも関連付けられたブランチが取得されます。ビルドの VCS ルートは異なるリポジトリを指すことができますが、論理ブランチ名は同じである必要があります。

この条件が満たされると、この名前のブランチがチェックアウトされ、チェーンのすべてのビルド(トリガーされたビルドに依存)およびチェーンのすべてのビルド(トリガーされたビルドに依存)に同じマークが付けられます。ブランチ。そうでない場合、デフォルトのブランチがチェックアウトされます。

アーティファクトの依存関係を設定することで、特定のブランチのビルドからアーティファクトを取得することが可能です。アーティファクトの依存関係は、指定されたブランチのビルドを使用します。スケジュールおよびビルドを終了トリガーについても同様です。

通知

「私の変更」を除くすべての通知ルールは、デフォルトブランチからのビルドについてのみ通知します。同時に、利用可能なすべてのブランチからのビルドに対して、「My changes」ルールが機能します。

ビルド構成ステータス

ビルド構成ステータスは、デフォルトのブランチからのビルドのみに基づいて計算されます。構成ごとの調査は、デフォルトのブランチからのビルドに対して機能します。例: デフォルト以外のブランチからのビルドが成功しても、構成ごとの調査は削除されませんが、デフォルトのブランチからのビルドが成功すると削除されます。

複数の VCS ルート

ビルド構成に、指定されたブランチフィルターを持つ 2 つ(またはそれ以上)の VCS ルートがある場合、トリガー動作はより複雑になる可能性があります。

VCS トリガーは、複数のルートからのブランチを論理ブランチ名でグループ化します。あるルートに他のルートからのブランチがない場合、そのデフォルトのブランチが使用されます。

サンプル: 2 つの VCS ルートには同じデフォルトのブランチ refs/heads/master があります。Root1 にはブランチ仕様 refs/heads/7.1/* があり、ブランチ refs/heads/7.1/feature1refs/heads/7.1/feature2 に新しいコミットがあります。Root2 には仕様 refs/heads/devel/* があり、ブランチ refs/heads/devel/feature1 に新しいコミットがあります。
ここで、feature1 は、異なるパスを持つ 2 つのブランチに関連する論理名です。.../7.1/feature1.../devel/feature1

この場合、VCS トリガーは、次のブランチの組み合わせからのリビジョンで 3 つのビルドを実行します。

ビルド番号

root1

root2

説明

1

refs/heads/master

refs/heads/master

デフォルトのブランチは、各仕様に暗黙的に追加されます。

2

refs/heads/7.1/feature1

refs/heads/devel/feature1

feature1 論理名は、両方のルートの仕様に含まれています。

3

refs/heads/7.1/feature2

refs/heads/master

feature2 論理名は、root1 の仕様には存在しますが、root2 の仕様には存在しません。root2 はデフォルトのブランチにフォールバックします。

ビルドパラメーター

ビルドスクリプトでブランチ名を取得するか、他のビルド構成設定でパラメーターとして使用する必要がある場合は、定義済みのビルドパラメーターを参照してください。

掃除

クリーンアップルールは、アクティブなブランチごとに個別に適用されます。

手動ブランチマージ

たとえば、ブランチを TeamCity に手動でマージできます。たとえば、コードレビュー / 承認後にのみブランチをマージする場合や、ブランチでテストが失敗してもマージを実行する場合などです。

ソースを手動でマージするには:

ビルド結果ページを開き、右上隅のアクションメニューをクリックして、このビルドソースをマージするを選択します。
表示されるダイアログでは、宛先ブランチを選択し、コミットメッセージ (必須) を追加できます。

ブランチを自動でマージすることも可能です。

2026 年 4 月 02 日

関連ページ:

ブランチリモート実行トリガ

ブランチリモート実行トリガーは、ビルド構成の VCS ルートの特定のブランチで TeamCity が変更を検出するたびに、新しい個人ビルドを自動的に開始します。完了した個人ビルドはビルド履歴にリストされますが、それを開始したユーザーに対してのみリストされます。現時点では、ブランチリモート実行トリガーは Git および Mercurial VCS のみをサポートします。ブランチからの非個人的なビルドについては、機能ブランチを使用した作業を参照してください。ブランチ仕様が VCS ルート用に構成され...

Git

TeamCity は、Git をすぐにサポートします。Azure DevOps Services を使用した Git ソース管理がサポートされています (以下の認証に関する注意事項を参照)。このページには、VCS ルート設定の Git 固有のフィールドの説明が含まれています。一般的な VCS ルートプロパティについては、このセクションを参照してください。注意事項: リモート実行とテスト済みのコミットは IntelliJ IDEA プラグインでサポートされています。Visual Studio アドインで...

VCS トリガーの設定

VCS トリガーは、TeamCity が構成済みの VCS ルートの新しい変更を検出するたびに新しいビルドを自動的に開始し、保留中の変更の変更を表示します。複数の VCS トリガーをビルド構成に追加できます。デフォルト設定の新しい VCS トリガーは、ビルド構成に保留中の変更があるとビルドをトリガーします。バージョン管理は、VCS コミットフック(設定されている場合)を尊重する VCS ルートの変更チェック間隔に従ってポーリングされます。チェックアウトルールに一致する変更のみが保留中として表示され...

プルリクエスト

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

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

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

カスタムビルドの実行

通常、ビルド構成ではビルドトリガーを使用して、必要なスケジュールに従って、または TeamCity がソースコード内の新しい変更を検出したときに新しいビルドを開始します。これらの自動的にトリガーされるビルドに加えて、TeamCity ではビルドを手動で実行し、必要に応じて設定をカスタマイズすることもできます。つまり、新しいプロパティの追加または既存のプロパティの変更、特定の変更の選択、ビルドのスケジュール、ビルドを実行するエージェントの選択などを行うことができます。TeamCity には、カスタ...