Perforce
TeamCity は Perforce と統合することで、Perforce P4 に保存されたソースプロジェクトをビルドし、継続的な統合とデリバリーを実現できます。この統合の詳細については、こちらを参照してください。
この記事では、Perforce P4(英語) VCS ルートに固有の設定について説明します。一般的な VCS ルート設定については、ここで説明します。
P4 接続設定
設定 | 説明 |
|---|---|
ポート | Perforce サーバーアドレスを 特定の環境では、 |
ストリーム / クライアント / クライアントマッピング | 接続モードを選択します。以下の詳細を参照してください。 |
ユーザー名 | ユーザーのログイン名を指定してください。 |
パスワードまたはチケット | オプションで、パスワードまたはチケットを指定します。 値を入力すると、TeamCity は次のようになります。
フィールドを空のままにすると、TeamCity は現在のユーザー (p4ticket.txt) の既存の P4 チケットに依存します。チケットがこのファイルに存在しないが、Perforce による認証に必要な場合は、失敗が発生します。 |
チケットベースの認証 | チケットベースの認証を有効にするには、このオプションをオンにします。このオプションはデフォルトで有効になっており、表示されません。 |
Perforce ストリームを使用する
既存の 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 つのビルド間で直接クライアントマッピングが変更された場合、サーバー上で
teamcity.perforce.enable-no-clean-checkout内部プロパティが設定されていない限り、2 番目のビルドのクリーンチェックアウト が強制されます。次の場合には、クライアントマッピングを変更しても、エージェント側のチェックアウトのクリーンチェックアウトは強制されません。
Perforce クライアント名が使用されます。クライアントの Perforce クライアントマッピングを変更しても、クリーンチェックアウトにはなりません。
Perforce ストリームが使用されます。同じストリームルートを維持しながらストリーム名を変更しても、クリーンなチェックアウトは行われません。
ChangeView の使用
特定のリビジョンに焦点を合わせるには、 ChangeView (英語) 仕様を使用します。
ここで、90 は dir1 の正確なリビジョンの番号であり、automaticLabelWithRevision は dir2 のラベル付きリビジョンです。これらのディレクトリの他のすべてのリビジョンは、この VCS ルートによって監視されません。
エージェントチェックアウト設定
エージェント側のチェックアウトを使用すると、TeamCity は各チェックアウトディレクトリ /VCS ルートに対して Perforce ワークスペースを作成します。これらのワークスペースは必要に応じて自動的に作成され、タイムアウト後に自動的に削除されます。詳細については、Perforce ワークスペースの処理を参照してください。
設定 | 説明 |
|---|---|
ワークスペースオプション | 必要に応じて、 特定の環境では、 |
非ストリームワークスペースを作成する | Stream でのみ使用可能 ストリーム仕様に基づいて、非ストリームワークスペースを使用してソースをチェックアウトできるようにします。これにより、チェックアウトルールを使用できますが、ビルド内でストリームにコミットすることはできなくなります。 |
クリーンアップのために「p4 clean」を実行します | このオプションを有効にすると、ビルド前に余分なファイルからワークスペースがクリーンアップされます。有効にすると、 |
所有リストの更新をスキップする | このオプションを有効にすると、同期時に Perforce サーバー上のファイルを追跡しません (常にすべてのファイルをエージェント |
追加同期オプション | 追加の
詳細については、 |
Perforce ワークスペースを自動的に削除する | この設定がオンの場合、TeamCity は各 clean-up 上の非アクティブなエージェントワークスペースを削除します。 詳細についてはこの記事を参照してください: ワークスペースの削除 |
Perforce ワークスペースパラメーター
TeamCity は、各 Perforce VCS ルートの接続変数を次のパラメーターに格納します。
%vcsRoot.extId.port%%vcsRoot.extId.user%%vcsRoot.extId.p4client%
ここで、extId は、設定で指定された VCS ルートの外部 ID です。
このようにして、ルートごとに個別にスクリプトからそれらにアクセスできます。
エージェントでのチェックアウトでは、TeamCity はチェックアウトプロセス中に作成された Perforce ワークスペースを記述する環境変数を提供します。
チェックアウトに複数の Perforce VCS ルートが使用される場合、最初の VCS ルートに対して変数が作成されます。変数は次のとおりです。
P4USER —
vcsroot.<VCS_root_ID>.userビルドパラメーターと同じです。P4PORT —
vcsroot.<VCS_root_ID>.portと同じです。P4CLIENT —
vcsroot.<VCS root ID>.p4clientと同じで、ビルドエージェントで生成された P4 ワークスペースの名前です。
これらの変数を使用して、チェックアウト後にカスタム p4 コマンドを実行できます。
詳細を見る
Perforce プロキシ設定
エージェント側のチェックアウトで Perforce プロキシを使用できるようにするには、ビルドエージェントで env.TEAMCITY_P4PORT 環境変数を指定すると、エージェントはこの値を P4PORT 値として受け取ります。
その他の設定
設定 | 説明 |
|---|---|
ビルドエージェント上の P4 パス | Perforce コマンドラインクライアント( これはエージェント側のチェックアウトに対してのみ機能します。エージェント側では、このパラメーターの値は、 サーバーの場合、p4 バイナリは TeamCity サーバーマシンの |
同期するラベル / 変更リスト | 最新のリビジョンではなく、特定の Perforce ラベル (選択的な変更を含む) でソースをチェックアウトする場合は、ラベルを指定します。たとえば、これはマイルストーン / リリースビルドを作成するときに役立ちます。このフィールドが空の場合、最新の変更リストが同期に使用されます。TeamCity がラベルを使用してソースを同期する場合、リビジョン番号が |
文字セット | クライアントマシンで使用されている文字セットを選択します。 |
UTF-16 エンコーディングをサポート | プロジェクトに ディポでサーバー側のチェックアウトと |
P4 トラスト | プロジェクトの VCS ルートが SSL 経由で Perforce に接続する場合、TeamCity はそれへの信頼できる接続を自動的に確立します。 Perforce サーバーの SSL 証明書が更新された場合、特別なパラメーターを使用して、この新しい証明書を信頼するようにエージェントを構成する必要があります。セキュリティ上の理由から、すべてのエージェントがソースをチェックアウトした後、このパラメーターを削除する必要があります。 |
関連ページ:
TeamCity と Perforce の統合
この記事では、TeamCity を Perforce P4 と統合して次のことを行う方法について説明します。P4 リポジトリに保存されているプロジェクトのソースをビルドします。Perforce ストリームを機能ブランチとして使用し、それらのソースを互いに独立して構築します。シェルブされた変更リスト内のファイルを事前テストおよび事前ビルドします。ソースに自動ラベルを適用します。Perforce HelixSwarm のコードレビューにビルドステータスを報告します。前提条件:TeamCity は P4...
ビルドパラメーターの設定
パラメーターは、TeamCity 設定およびビルドスクリプトの構文を介して参照するペアです。パラメーター部分は、生の値 () にすることも、別のパラメーターへの参照 () を含めることもできます。パラメーター型:TeamCity は次の 3 種類のパラメーターをサポートします。構成パラメーター — ビルド構成内で設定を共有することを主な目的とするパラメーター。これらのパラメーターを使用して、テンプレートから作成された構成やレシピを使用する構成をカスタマイズすることもできます。TeamCity は...
VCS チェックアウトモード
ビルド構成のバージョン管理設定ページでは、プロジェクトのソースコードを VCS から取得する方法を構成できます。VCS ルートを接続してチェックアウトオプションを構成できます。VCS チェックアウトモードは、プロジェクトソースがエージェントに到達する方法に影響する設定です。このモードは、ソースのチェックアウトのみに影響します。現在のリビジョンおよび変更データの取得ロジックは TeamCity サーバーによって実行されるため、TeamCity サーバーはどのモードでも VCS サーバーにアクセスする...
VCS チェックアウト規則
VCS チェックアウトルールを使用すると、構成された VCS ルートの一部をチェックアウトし、バージョン管理のディレクトリをビルドエージェントのビルドチェックアウトディレクトリのサブディレクトリにマップすることができます。リポジトリ全体の VCS ルートを定義し、各ビルド構成にその関連部分のみをチェックアウトするように指示することができます。チェックアウトルールは、UI に表示されるビルドの変更と、エージェント上のビルドでチェックアウトされるファイルに影響します。コミットがビルドの VCS ルー...
エージェント要件の設定
エージェントの要件は、ビルド構成を実行できるエージェントを指定する条件です。現在存在するすべての要件を表示して新しい要件を作成し、特定の構成を実行できるエージェントを確認するには、ビルド設定 | エージェント要件にアクセスしてください。エージェント要件ビデオガイド:要件構文:エージェント要件は式です。ここは、定義済みまたはカスタム (ユーザー定義) のビルドパラメーターです。例: エージェントにインストールされているオペレーティングシステムを報告するパラメーター。要件では、エージェントがこの特...
VCS ルートの設定
VCS ルートは、TeamCity ←→ VCS リポジトリ通信の基礎です。この不可欠な要素は、リポジトリのチェックアウト、コードソースのタグ付け、ビルドステータスの VCS への返信など、さまざまな操作を実行するために必要な VCS プロバイダーへの接続を定義します。VCS ルートには次の情報が保存されます。TeamCity がリモートファイルをプルおよびプッシュするために使用する URL を取得してプッシュします。ブランチ情報: TeamCity が追跡する必要があるリポジトリブランチのリスト...