TeamCity 2020.1ヘルプ

パーソナルビルド

パーソナルビルドとは、一般的なビルドシーケンスのビルドアウトであり、通常、バージョン管理にまだコミットされていない変更を使用します。通常、パーソナルビルドは、リモート実行プロシージャを介して、サポートされているIDEの 1つから開始されます。以下に説明するように、変更を含むパッチをサーバーに直接アップロードすることもできます。

個人用ビルドは、現在のVCSリポジトリソースと、リモート実行の開始時に識別された変更されたファイルを使用します。パーソナルビルドの結果は、対応するIDEプラグインのマイチェンジビューと、TeamCityの変更ページで確認できます。終了した個人ビルドはビルド履歴にリストされますが、開始したユーザーのみが対象です。
事前テスト済み(遅延)コミットでリモート Runを使用してコミットを実行する方法の詳細を参照してください。

デフォルトでは、ユーザーはビルドリストに自分の個人ビルドのみを表示しますが、これはユーザープロファイル設定とツール | 一般 | UI 設定の「個人用ビルドをすべて表示」オプションを使用して変更できます。

実行ダイアログの対応するオプションを使用して、ビルドをパーソナルとしてマークすることもできます。
デフォルトでは、プロジェクト開発者のロールを持つユーザーのみが個人ビルドを開始できます。

ビルド構成の一般設定実行中のパーソナルビルドを制限することができます。

直接パッチアップロード

Web UIまたはREST APIを介して、TeamCityサーバーにローカルで変更したパッチを直接アップロードできます。

TeamCityは、統一されたdiff形式(英語)のパッチをサポートしています。

パッチを生成するには :

  • IntelliJ Platform IDE : コミットログで必要なローカル変更を選択し、コンテキストメニューでパッチの作成をクリックし、パッチを *.diff ファイルとして保存します。

  • Git経由 : git diff commit1..commit2 > path/filename.diffを実行します。
    例: test フォルダー内の patch.diff ファイルへの前回のコミットと直前のコミット間の差分を保存するには、git diff HEAD^ HEAD > ~/test/patch.diffを実行します。Gitのドキュメント(英語)の他の例を参照してください。

Web UIを介してパッチをアップロードし、パーソナルビルドを実行するには :

  1. カスタムビルドを実行するダイアログを開き、「 個人ビルドとして実行 」オプションを有効にします。パッチをアップロードボタンが表示されます。

    Upload a unidiff patch via UI

  2. パッチをアップロードして、ビルド実行をクリックします。
    エージェントはパッチを受け取り、ビルドを実行する前に適用します。ビルド後、パッチが元に戻されるため、以降のビルドでチェックアウトディレクトリを再利用できます。

パッチをアップロードし、REST APIを介してパーソナルビルドを実行するには :

  1. 次の POST リクエストを送信します。

    curl \ -X POST \ -H "Content-Type: text/text" \ -H "Origin: <host>:<port>" \ --data-binary @patch.diff \ "http://<username>:<password>@<host>:<port>/uploadDiffChanges.html?description=<description-text>&commitType=0"

    応答として、サーバーでこの変更のIDを受け取ります。

  2. ビルドノードを記述し、ビルド構成IDと個人的な変更のIDを記載したXMLファイルを作成します。

    <build personal="true"> <triggered type='idePlugin' details='Unified Diff Patch'/> <triggeringOptions cleanSources="false" rebuildAllDependencies="false" queueAtTop="false"/> <buildType id="<build_configuration_id>"/> <lastChanges> <change id="<change_ID>" personal="true"/> </lastChanges> </build>
  3. REST APIを介してパーソナルビルドをトリガーするには、作成したファイルを buildQueue エンドポイントに投稿します。

    curl \ -X POST \ -H "Content-Type: application/xml" \ -H "Origin: <host>:<port>" \ --data @node.xml \ "http://<username>:<password>@<host>:<port>/app/rest/buildQueue"

    エージェントはビルドを実行する前にパッチを受け取り、それを適用します。ビルド後、パッチが元に戻されるため、チェックアウトディレクトリは後続のビルドで再利用できます。