TeamCity オンプレミス 2023.11 ヘルプ

Perforce Helix Swarm との統合

Perforce ヘリックススウォーム(英語)は、Helix Core のコードレビューツールです。開発者がファイルをシェルフしてレビューを要求すると、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 エンドポイントにリクエストを送信できます。

Test in Helix Swarm
  1. サイドナビゲーションペインで「テスト」をクリックします。

  2. テスト定義の追加ボタンをクリックしてください。

  3. 新しいブラウザータブで、TeamCity UI に移動し、管理 | <あなたのビルド構成> に移動します。

  4. ビルド構成 ID 値を TeamCity からコピーします。

  5. Swarm テスト設定に戻り、コピーした値をテスト名として貼り付けます。

  6. URL フィールドに次の値を入力します。

    <TeamCity_server_URL>/app/perforce/runBuildForShelve

    この値は、Helix Swarm がビルド設定と通信するために使用する TeamCity REST API エンドポイントです。

  7. 本文フィールドに次の文字列を入力します。

    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}
  8. Swarm の TeamCity へのリクエストを承認するには、ヘッダーの追加をクリックして次の値を指定します。

  9. タイムアウト設定を 10 秒に設定します。

  10. 保存をクリックして新しいテストを保存します。

ワークフローを設定する

Helix Swarm ワークフロー(英語)は、ユーザーが Swarm レビューを作成または編集するときにテストを実行します。

Swarm Workflow Settings
  1. サイドナビゲーションペインで「ワークフロー」をクリックします。

  2. 新しいワークフローを作成するか、グローバルワークフローを編集します。

  3. ワークフロー設定で、テストの追加をクリックし、前の手順で作成したテストを選択します。

  4. 更新時トリガータイプを選択します。

  5. ブロック値は「なし」のままにします。

  6. 保存」をクリックしてワークフロー設定を終了します。

プロジェクトをセットアップする

Helix Swarm プロジェクト(英語)は、特定のコードベースで共同作業する Helix Core Server ユーザーのグループです。

  1. サイドナビゲーションペインで「プロジェクト」をクリックします。

  2. 新しいプロジェクトを作成するか、既存のプロジェクトを編集します。

  3. ワークフロー値を、前の手順で作成したワークフローに設定します。テストがグローバルワークフローで使用される場合は、「ワークフローなし」オプションを選択します。

コミットステータスパブリッシャーのセットアップ

  1. TeamCity UI で、管理 | <あなたのビルド構成> に移動します。

  2. 機能を構築するタブに切り替えます。

  3. ビルド機能を追加をクリックし、ステータス発行者のコミットを選択します。

  4. パブリッシャーとして Perforce ヘリックススウォームを選択します。

  5. Helix Swarm インスタンスの URL を入力します。

  6. ユーザー名とチケット(英語)を入力します。認証情報を指定するユーザーは、Helix Swarm レビューにコメントを投稿する権限を持っている必要があります。さらに、Commit Status Publisher が Swarm インスタンスにアクセスできなくなるのを防ぐために、ユーザーのチケットが期限切れになっていないことを確認してください。

  7. 新しい TeamCity ビルドをトリガーする既存のワークフローやテストがなく、必要に応じて TeamCity に自動的に作成させたい場合は、Swarm テストの作成オプションをオンにします。この設定では、手順 6 で管理者のユーザー名とチケットを渡す必要があります。

    Commit Status Publisher が使用できるワークフローがすでにある場合 (または、管理者の資格情報をビルド機能に渡さないようにワークフローを作成することを選択した場合)、このチェックボックスは空のままにしておきます。

  8. 接続のテストをクリックして、Commit Status Publisher が Swarm インスタンスにアクセスできることを確認します。「指定された資格情報には管理者権限がありません」というエラーが表示される場合は、管理者以外のユーザーの資格情報に対して Swarm テストの作成オプションを有効にしようとしていないことを確認してください。

  9. 保存」をクリックして、構成にビルド機能を追加します。

統合機能

Commit Status Publisher を設定したら、デポファイルを変更してシェルブします。Helix Swarm でこの保留された変更を開き、レビューのリクエストをクリックします。これにより、新しいビルドを開始するリクエストを TeamCity に送信する Helix Swarm テストがトリガーされます。統合で手動で構成されたワークフローとテストを使用している場合、レビューには現在のテスト / ビルドステータスを示すテストセクションが表示されます。

Tests section of a review

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

Personal build in TeamCity

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

Open Swarm changes from TeamCity

TeamCity ビルドがスケジュールされた開始、終了、完了の各ステージを経るにつれて、Commit Status Publisher は Helix Swarm レビューのコメントセクションに更新を投稿します。

TeamCity comments in Swarm

関連ページ:

ステータス発行者のコミット

コミットステータスパブリッシャーは、TeamCity がコミットのビルドステータスを外部システムに自動的に送信できるようにするビルド機能です。この機能は、TeamCity にバンドルされているオープンソースプラグインとして実装されます。サポートされているシステム:GitHub(プルリクエストのビルドステータスもサポートされています)、GitLab、Azure DevOps(サポートされるステータス: 保留中、成功、失敗、エラー)、Bitbucket サーバーおよび Bitbucket クラウド、J...

ユーザープロファイルの構成

ユーザープロファイル設定にアクセスするには、ヘッダーのアバターをクリックし、ドロップダウンメニューからプロファイルを選択します。パスワードを変更する:組み込み認証が構成されている場合、TeamCity サーバーはユーザー認証用のパスワードを維持します。パスワードはプロファイル | 一般 | 組み込み認証で変更できます。既存のパスワードと新しいパスワードを入力し、「変更を保存」をクリックします。パスワードは、組み込みの認証でのみ変更できます。これらのフィールドが表示されない場合は、TeamCit...

Perforce でのワークスペース処理 TeamCity

Perforce 関連の操作を実行するために、TeamCity は通常「ワークスペースなし」モードで動作します。つまり、ワークスペースコンテキストなしで Perforce コマンドを実行します。たとえば、変更の追跡やほとんどのサーバー側操作にはワークスペースは必要ありません。ワークスペースが作成されるケースは次のとおりです。エージェント側のチェックアウトが有効になっている場合(これがデフォルトのチェックアウトモードです)。この場合、TeamCity はビルドソースをチェックアウトするための Pe...

TeamCity とコンテナーマネージャーの統合

TeamCity は、コンテナーマネージャー (Docker、Podman) と複数のレベルで統合されます。Docker ビルドランナーは、ビルド中に Docker コマンドを起動し、Docker イメージを作成します。Docker Compose ビルドランナーは、ビルド中に Docker Compose ツールを使用してサービスを開始します。コンテナーラッパー拡張機能は、コンテナー内でビルドステップを実行します。Docker とポッドマンをサポートします。複数のランナーにご利用いただけます。Doc...