TeamCity 2020.2 ヘルプ

パーソナルビルド

A personal build is a build-out of the common build sequence which typically uses the changes not yet committed into the version control. Personal builds are usually initiated from one of the supported IDEs via the リモート実行 procedure. You can also upload a patch with changes directly to the server, as described below.

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

By default, users only see their own personal builds in the build lists, but this can be changed via the "Show all personal builds" option in 設定とツール | 一般 | UI 設定 of the user profile.

You can also mark a build as personal using the corresponding option of the 実行 dialog.
By default, only users with the Project Developer role can initiate a personal build.

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

直接パッチアップロード

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. Open the カスタムビルドを実行する dialog and enable the "run as a personal build" option. The パッチをアップロード button will appear.

    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"

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