Perforce Helix Swarm との統合
Perforce ヘリックススウォーム(英語)は P4 用のコードレビューツールです。開発者がファイルをシェルブしてレビューを依頼すると、TeamCity はその変更に対するビルドを実行し、結果をスウォームテスト(英語)として投稿するだけでなく、Helix Swarm レビューのコメント欄にも投稿できます。
前提条件
TeamCity と Helix Swarm の統合は、ステータス発行者のコミットビルド機能に基づいています。パブリッシャーはスウォームテスト(英語)を利用して、次の 2 つのタスクを解決します。
Helix Swarm レビューが作成または編集されるたびに追跡し、これが発生したときに新しいビルドを開始するリクエストを TeamCity に送信します。
TeamCity ビルドのステータスを Helix Swarm レビューに投稿します。
Helix Swarm セットアップに、ユーザーがレビューを作成または編集するときに TeamCity ビルドを起動するテストがすでに含まれているかどうかに応じて、次の 2 つのオプションのいずれかを選択できます。
TeamCity が新しい Swarm テストを作成できるようにします。既存の Helix Swarm ワークフローとテストがない場合は、このアプローチを使用します。このオプションは、管理者ユーザーの資格情報を Commit Status Publisher に渡す場合にのみ使用できます。このオプションを選択する場合は、Swarm 側で追加のセットアップが必要ないため、コミットステータスパブリッシャーのセットアップセクションに進んでください。
TeamCity に既存のワークフローとテストを見つけて利用するよう強制します。TeamCity は Swarm エンティティを作成しないため、このアプローチでは管理者ユーザーの資格情報は必要ありません。ただし、これらのエンティティを Swarm 側で手動で設定する必要があります。
Helix Swarm のセットアップ
このセクションで説明する手順は Helix Swarm UI で実行され、TeamCity が管理者以外のユーザーの認証情報を利用して新しい Swarm コメントを投稿する場合にのみ必要です。
テストを作成する
Helix Swarm テスト(英語)は、レビューの作成または編集時に TeamCity REST API エンドポイントにリクエストを送信できます。

サイドナビゲーションペインで「テスト」をクリックします。
テスト定義の追加ボタンをクリックしてください。
新しいブラウザータブで、TeamCity UI に移動し、管理 | <あなたのビルド構成> に移動します。
ビルド構成 ID 値を TeamCity からコピーします。
Swarm テスト設定に戻り、コピーした値をテスト名として貼り付けます。
URL フィールドに次の値を入力します。
<TeamCity_server_URL>/app/perforce/runBuildForShelveこの値は、Helix Swarm がビルド設定と通信するために使用する TeamCity REST API エンドポイントです。
本文フィールドに次の文字列を入力します。
buildTypeId=<X>&vcsRootId=<Y>&shelvedChangelist={change}&swarmUpdateUrl={update}X— テスト名と同じ値。ビルド構成 ID から TeamCity にコピーします。Y— TeamCity で、管理 | <あなたのビルド構成> | バージョン管理設定 | <あなたの VCS ルート> に移動し、VCS ルート ID 値をコピーします。{change}— 変更番号(英語)。{update}— 更新コールバック URL(英語)。
この文字列により、Helix Swarm テストで特定の TeamCity 構成を見つけて、その新しいビルドをスケジュールできるようになります。例:
buildTypeId=P4-Remote_MyBuildConfig&vcsRootId=MainP4Root&shelvedChangelist={change}&swarmUpdateUrl={update}Swarm の TeamCity へのリクエストを承認するには、ヘッダーの追加をクリックして次の値を指定します。
ヘッダー — 「承認」
値 - 「Bearer ABC」。ABC は TeamCity ユーザーアクセストークンです。
タイムアウト設定を 10 秒に設定します。
保存をクリックして新しいテストを保存します。
ワークフローを設定する
Helix Swarm ワークフロー(英語)は、ユーザーが Swarm レビューを作成または編集するときにテストを実行します。

サイドナビゲーションペインで「ワークフロー」をクリックします。
新しいワークフローを作成するか、グローバルワークフローを編集します。
ワークフロー設定で、テストの追加をクリックし、前の手順で作成したテストを選択します。
更新時トリガータイプを選択します。
ブロック値は「なし」のままにします。
「保存」をクリックしてワークフロー設定を終了します。
プロジェクトをセットアップする
Helix Swarm プロジェクト(英語)は、特定のコードベースで共同作業している P4 Server ユーザーのグループです。
サイドナビゲーションペインで「プロジェクト」をクリックします。
新しいプロジェクトを作成するか、既存のプロジェクトを編集します。
ワークフロー値を、前の手順で作成したワークフローに設定します。テストがグローバルワークフローで使用される場合は、「ワークフローなし」オプションを選択します。
コミットステータスパブリッシャーのセットアップ
TeamCity UI で、管理 | <あなたのビルド構成> に移動します。
機能を構築するタブに切り替えます。
ビルド機能を追加をクリックし、ステータス発行者のコミットを選択します。
パブリッシャーとして Perforce ヘリックススウォームを選択します。
Helix Swarm インスタンスの URL を入力します。
ユーザー名とチケット(英語)を入力します。認証情報を指定するユーザーは、Helix Swarm レビューにコメントを投稿する権限を持っている必要があります。さらに、Commit Status Publisher が Swarm インスタンスにアクセスできなくなるのを防ぐために、ユーザーのチケットが期限切れになっていないことを確認してください。
新しい TeamCity ビルドをトリガーする既存のワークフローやテストがなく、必要に応じて TeamCity に自動的に作成させたい場合は、Swarm テストの作成オプションをオンにします。この設定では、手順 6 で管理者のユーザー名とチケットを渡す必要があります。
Commit Status Publisher が使用できるワークフローがすでにある場合 (または、管理者の資格情報をビルド機能に渡さないようにワークフローを作成することを選択した場合)、このチェックボックスは空のままにしておきます。
コミットステータスパブリッシャーは、レビューのコメントタブにビルド結果 (成功 / 失敗) を投稿し、テストセクションを更新することで、現在の TeamCity ビルドステータスを Swarm ユーザーに通知できます。


コードレビューのコメントチェックボックスを使用して、Commit Status Publisher がこれらのコメントを対応する Swarm レビュータブに投稿するかどうかを指定します。
接続のテストをクリックして、Commit Status Publisher が Swarm インスタンスにアクセスできることを確認します。「指定された資格情報には管理者権限がありません」というエラーが表示される場合は、管理者以外のユーザーの資格情報に対して Swarm テストの作成オプションを有効にしようとしていないことを確認してください。
「保存」をクリックして、構成にビルド機能を追加します。
統合機能
Commit Status Publisher を設定したら、ディポファイルを変更してシェルブします。Helix Swarm でこの保留された変更を開き、レビューのリクエストをクリックします。これにより、新しいビルドを開始するリクエストを TeamCity に送信する Helix Swarm テストがトリガーされます。統合で手動で構成されたワークフローとテストを使用している場合、レビューには現在のテスト / ビルドステータスを示すテストセクションが表示されます。

TeamCity は、Helix Swarm でレビューを要求したユーザーと同じユーザー名を持つユーザーを検索し、このユーザーに対して新しい個人ビルドを開始します。ビルドのスウォームのレビューセクションのリンクをクリックすると、シェルブされた変更と関連する Swarm レビューを開くことができます。

ビルドの変更タブから関連する変更を表示することもできます。

TeamCity ビルドが完了すると、Commit Status Publisher は Helix Swarm レビューのコメントセクションに新しいコメントとして結果を発表できます。

コミットステータスパブリッシャーの設定ダイアログで Swarm テストの作成オプションのチェックを外すと、これらのコメントを無効にすることができます。この場合、ビルド機能は Swarm レビューのテストセクションのみを更新します。
関連ページ:
ステータス発行者のコミット
コミットステータスパブリッシャーは、ビルドステータスを VCS プロバイダーに送信するビルド機能です。これにより、リポジトリページからコードの状態を追跡し、関連する TeamCity ビルドにすばやく移動して詳細なビルドログを確認できます。サポートされている VCS プロバイダー:GitHub(プルリクエストのビルドステータスもサポートされています)、GitLab、Azure DevOps(サポートされるステータス: 保留中、成功、失敗、エラー)、Bitbucket サーバーおよび Bitbuck...
ユーザープロファイルの構成
ユーザープロファイル設定にアクセスするには、ヘッダーのアバターをクリックし、ドロップダウンメニューからプロファイルを選択します。パスワードを変更する:組み込み認証が設定されている場合、TeamCity サーバーはユーザー認証用のパスワードを保持します。プロファイル | 一般 | 組み込み認証でパスワードを変更できます。既存のパスワードと新しいパスワードを入力し、変更を保存をクリックします。パスワードは、組み込みの認証でのみ変更できます。これらのフィールドが表示されない場合は、TeamCity...
Perforce でのワークスペース処理 TeamCity
Perforce 関連の操作を実行するために、TeamCity は通常「ワークスペースなし」モードで動作します。つまり、ワークスペースコンテキストなしで Perforce コマンドを実行します。たとえば、変更の追跡やほとんどのサーバー側操作にはワークスペースは必要ありません。ワークスペースが作成されるケースは次のとおりです。エージェント側のチェックアウトが有効になっている場合(これがデフォルトのチェックアウトモードです)。この場合、TeamCity はビルドソースをチェックアウトするための Pe...
TeamCity とコンテナーマネージャーの統合
TeamCity はコンテナーマネージャー(Docker および Podman)と統合し、幅広い運用をサポートします。コンテナー内でステップを実行するほとんどのビルド手順には、手順を実行するコンテナーを指定できるコンテナー設定セクションが含まれています。構成に同じコンテナー内で実行する必要のある複数のステップがある場合は、各ステップを個別に構成するのではなく、Docker で実行ビルド機能を使用してください。どちらの方法も、Docker または Podman がインストールされたビルドエージェン...