TeamCity On-Premises 2026.2 Help

Perforce

TeamCity は Perforce と統合して、Perforce P4 に保存されたソースプロジェクトをビルドし、継続的インテグレーションとデリバリーを実現できます。 この統合の詳細については、 こちらを参照してください。

この記事では、 Perforce P4(英語) VCS ルートに固有の設定について説明します。 一般的な VCS ルート設定については、 こちらで説明しています。

P4 接続設定

設定

説明

ポート

Perforce サーバーアドレスを host:port として定義します。

特定の環境では、 P4Host 環境変数は、あらゆる型のチェックアウトについて、 以下のワークスペースオプションで設定できます。

ストリーム / クライアント / クライアントマッピング

接続モードを選択します。 以下の詳細を参照してください。

ユーザー名

ユーザーのログイン名を指定してください。

パスワードまたはチケット

オプションで、パスワードまたはチケットを指定します。

値を入力すると、TeamCity は次の処理を行います:

  • Perforce コマンドを実行するための P4PASSWD 環境変数として設定する、 または

  • Perforce サーバーでパスワードベースの認証が無効になっている場合は、 p4 login号 コマンドのチケットとして使用してください。

フィールドを空のままにすると、TeamCity は現在のユーザーの既存の P4 チケットを使用します ( p4ticket.txt )。 チケットがこのファイルに存在しないものの Perforce での認証に必要な場合、失敗します。
チケットファイルは、TeamCity サーバーマシンと、TeamCity がこの VCS ルートの Perforce ビルドを実行するすべてのビルドエージェントに存在している必要があります。

チケットベースの認証

チケットベースの認証を有効にするには、このオプションをオンにします。 このオプションはデフォルトで有効になっており、表示されません。

Perforce Streams を使用

既存の Perforce ストリーム(英語)を使用するには、 ストリームオプションを選択します。 TeamCity はこのストリームを使用して、ストリームベースのワークスペースを準備し、それに合わせてクライアントマッピングを調整します。

このモードの使用に関する注意:

  • ストリームフィールドの形式:

    • 深層構造仕様、つまり //DEPOTNAME/1/2/n のようなパスをサポートします。

    • ビルドパラメーターをサポートします。

  • StreamAtChange オプションを使用するには、 同期するラベル / 変更リストを定義する必要があります。

  • ストリームを エージェント側チェックアウトモードで使用する場合、 。 => sub/directory のような単純な チェックアウトルールがサポートされます。 除外チェックアウトルール、複数の包含ルール、 aaa=>bbb のようなルールは、「非ストリームワークスペースを作成する 」オプションが有効になっている場合にのみサポートされます (以下を参照)。

  • タスクストリームが機能ブランチに使用されている場合、変更を加えるコミットが行われるまで、TeamCity はタスクストリーム内の一部の変更を見逃すことがあります。つまり、タスクストリームへの 実際のコミットが行われるまで、親ストリームからのマージコミットは検出されません (チケット TW-44765 を参照)。

  • TeamCity の Perforce サポートでは、チェックアウトルールが大文字と小文字を区別して扱われることに注意してください。 Perforce ベースのビルド構成の大文字と小文字を区別しないようにするには、 バージョン管理設定 ページで、 チェックアウト規則の編集フォームに次のコメントを追加します: ##teamcity ignore-case

機能ブランチサポートを有効にする 」オプションを使用すると、デフォルトのストリームに加えて、変更を監視するブランチストリームを指定できます。 この機能の詳細については、 続きを読むを参照してください。

Perforce クライアントを使用

クライアントオプションを使用すると、クライアントワークスペース名を直接指定できます。 ワークスペースは、Perforce クライアントアプリケーション (P4V や P4Win など) によってすでに作成されている必要があります。 構成されたクライアントワークスペースからのマッピングルールのみが使用されます。 クライアント名は無視されます。

このモードの使用に関する注意:

  • このオプションを サーバー側チェックアウトで使用すると、サーバー側の内部 TeamCity ソースキャッシングが無効になります。 これにより、 クリーンチェックアウトのパフォーマンスが低下する可能性があります。

  • ビルド構成に 構成パラメーターteamcity.perforce.agent.reuse.client=true があり、デフォルトのチェックアウトルールを使用している場合、TeamCity はエージェント上に別の Perforce ワークスペースを作成せず、Perforce VCS ルートで指定されたお名前を持つ既存の Perforce クライアントを再利用しようとします。

Perforce デポをクライアントにマップ

クライアントマッピングオプションを使用すると、ディポをクライアントマシンにマッピングできます。

このモードの使用に関する注意:

  • クライアントマッピングフィールドの形式:

    • TeamCity は、ビルドが実行されるビルドエージェントの OS/プラットフォームに応じてファイル区切り文字を処理します。 すべてのビルドエージェントに特定の改行コード文字を使用できるようにするには、代わりに クライアントまたは ストリームオプションを選択します (Perforce で LineEnd を指定します)。 または、特定のプラットフォームでのみビルドを実行する エージェント要件を追加することもできます。

    • マッピング内のクライアントのお名前の代わりに team-city-agent を使用します。
      例:

      //depot/MPS/... //team-city-agent/... //depot/MPS/lib/tools/... //team-city-agent/tools/...
  • 2 つのビルド間で直接クライアントマッピングが変更された場合、2 番目のビルドでは クリーンチェックアウト強制されます 。ただし、サーバーで teamcity.perforce.enable-no-clean-checkout 内部プロパティが設定されている場合を除きます。

  • 次の場合には、クライアントマッピングを変更しても、エージェント側のチェックアウトのクリーンチェックアウトは 強制されません

    • Perforce クライアントのお名前が使用されています: そのクライアントの Perforce クライアントマッピングを変更しても、クリーンチェックアウトにはなりません。

    • Perforce ストリームが使用されています: 同じストリームルートを維持したままストリームのお名前を変更しても、クリーンチェックアウトにはなりません。

ChangeView の使用

特定のリビジョンに焦点を合わせるには、 変更ビュー (英語) 仕様を使用します。

//depot/... //team-city-agent/... ChangeView: //depot/dir1/…@90 //depot/dir2/…@automaticLabelWithRevision

ここで、 90ディレクトリ 1 の正確なリビジョンの番号であり、 リビジョン付きの自動ラベルディレクトリ 2 のラベル付きリビジョンです。 これらのディレクトリの他のすべてのリビジョンは、この VCS ルートによって監視されません。

エージェントチェックアウト設定

エージェント側チェックアウトを使用すると、TeamCity は各 チェックアウトディレクトリ/VCS ルートに対して Perforce ワークスペースを作成します。 これらのワークスペースは必要に応じて自動的に作成され、タイムアウト後に自動的に削除されます。 詳細については、 Perforce ワークスペースの処理を参照してください。

設定

説明

ワークスペースオプション

必要に応じて、 p4 クライアント (英語) コマンドに次のオプションを設定します: オプションSubmitOptionsLineEnd

特定の環境では、 P4Host を定義します(あらゆる型のチェックアウトでサポートされます)。 以下のワークスペースパラメーターの詳細を参照してください。

非ストリームワークスペースを作成する

Stream でのみ使用可能

ストリーム仕様に基づいて、非ストリームワークスペースを使用してソースをチェックアウトできるようにします。 これにより、 チェックアウトルールを使用できますが、ビルド内でストリームにコミットすることはできなくなります。

クリーンアップのために「p4 clean」を実行します

このオプションを有効にすると、ビルド前に余分なファイルからワークスペースがクリーンアップされます。 有効にすると、 p4 sync -f または p4 sync -p が使用されていない限り、 p4 clean コマンドは p4 sync の前に実行されます。 コマンドリファレンス(英語)を参照してください。

所有リストの更新をスキップする

このオプションを有効にすると、同期時に Perforce サーバー上のファイルを追跡しません (常にすべてのファイルをエージェント p4 sync -p (英語) に転送します)。 無効にすると、TeamCity はリストを最新の状態に保つために p4 have を使用します。

追加同期オプション

追加の p4 sync オプションを指定します。

sync コマンドの後に宣言するオプションのリストを指定する必要がある場合は、このコマンドの名前を省略します。 例:

  • p4 sync --parallel=threads=5 コマンドを実行するには、 --parallel=threads=5 を入力します。

sync コマンドの前後の両方で宣言する必要があるオプションを指定するには、この追加オプションのリストにコマンド名を含めます。 例:

  • p4 -r3 sync コマンドを実行するには、 -r3 sync を入力します。

  • p4 -r4 sync --parallel=threads=5 コマンドを実行するには、 -r4 sync --parallel=threads=5 を入力します。

詳細については、 コマンドリファレンス (英語) を参照してください。

Perforce ワークスペースを自動的に除去

この設定がオンの場合、TeamCity は クリーンアップ のたびに非アクティブなエージェントワークスペースを除去します。

詳細についてはこの記事を参照してください: ワークスペースの削除

Perforce ワークスペースパラメーター

TeamCity は各 Perforce VCS ルートの接続変数を次のパラメーターに格納します:

  • %vcsRoot.extId.port%

  • %vcsRoot.extId.user%

  • %vcsRoot.extId.p4client%

ここで、 extId は、設定で指定された VCS ルートの外部 ID です。

このようにして、ルートごとに個別にスクリプトからそれらにアクセスできます。

エージェントでチェックアウトする場合、TeamCity はチェックアウトプロセス中に作成された Perforce ワークスペースを表す環境変数を提供します。
チェックアウトに複数の Perforce VCS ルートが使用される場合、変数は 最初 VCS ルート用に作成されます。 変数は次のとおりです:

  • P4USERvcsroot.<VCS_root_ID>.user ビルドパラメーターと同じです。

  • P4PORTvcsroot.<VCS_root_ID>.port と同じです。

  • P4CLIENTvcsroot.<VCS root ID>.p4client と同じで、ビルドエージェントで生成された P4 ワークスペースの名前です。

これらの変数を使用して、チェックアウト後にカスタム p4 コマンドを実行できます。

詳細を見る

Perforce プロキシ設定

エージェント側のチェックアウトで Perforce プロキシを使用できるようにするには、 ビルドエージェントenv.TEAMCITY_P4PORT 環境変数を指定すると、エージェントはこの値を P4PORT 値として受け取ります。

その他の設定

設定

説明

ビルドエージェント上の P4 パス

Perforce コマンドラインクライアント(p4.exe )へのパスを指定します。

これは エージェント側のチェックアウトに対してのみ機能します。 エージェント側では、このパラメーターの値は、 TEAMCITY_P4_PATH 環境変数が ビルドエージェント.プロパティ ファイルで設定されているか、 ビルドパラメーターから取得されている場合、その変数によって上書きされる可能性があります。

サーバーの場合、p4 バイナリは TeamCity サーバーマシンの パス 環境変数内に存在する必要があります。または、 teamcity.perforce.customP4Path 内部プロパティで指定できます。

同期するラベル / 変更リスト

最新のリビジョンではなく、特定の Perforce ラベル (選択的な変更を含む) でソースをチェックアウトする場合は、ラベルを指定します。 たとえば、これはマイルストーン / リリースビルドを作成するときに役立ちます。 このフィールドが空の場合、最新の変更リストが同期に使用されます。 TeamCity がラベルを使用してソースを同期すると、リビジョン番号を VCS ルート.{externalId}.変更リスト パラメーターに書き込みます。

文字セット

クライアントマシンで使用されている文字セットを選択します。

UTF-16 エンコーディングをサポート

プロジェクトに utf16 Perforce ファイルタイプ(英語)として UTF-16 ファイルが保存されている場合は、このオプションを有効にします。

ディポで サーバー側のチェックアウトと utf16 のファイルがあります Perforce ファイルタイプ(英語)を使用する場合は、このオプションを有効にしてください。 チェックアウトされたファイルで UTF-16 エンコーディングを維持するには、このオプションを有効にしてください。 そうしないと、チェックアウト時にそのようなファイルが UTF-8 に変換される可能性があります。

UTF-16 ファイルを バイナリ Perforce ファイルタイプ(英語)として保存すると、それらは常に「そのまま」チェックアウトされ、変換は実行されません。

P4 トラスト

プロジェクトの VCS ルートが SSL 経由で Perforce に接続する場合、TeamCity はその接続を信頼済みとして自動的に確立します。 p4 トラスト コマンドは、Perforce 接続をテストするか、ビルドエージェントが Perforce からソースをチェックアウトするたびに送信されます。

Perforce サーバーの SSL 証明書が更新された場合、特別なパラメーターを使用して、この新しい証明書を信頼するようにエージェントを構成する必要があります。 セキュリティ上の理由から、すべてのエージェントがソースをチェックアウトした後、このパラメーターを削除する必要があります。 teamcity.internal.perforce.forceTrust=true 構成パラメーターを関連するプロジェクトまたはビルド構成に設定します。

2026 年 9 月 11 日