ビルドの詳細を取得する
この記事では、RESTAPI を介してビルドデータを取得する一般的なユースケースについて説明します。これらは、次のことが必要な場合に役立ちます。
完了またはキューに入れられたビルドを取得します。
特定の条件でビルドを見つけます。
依存関係と変更を検索します。
最近のビルドを取得する
最後の 100 ビルドを取得するには、次を実行します。
サーバーは、最大 100 個のビルドエンティティを含むビルドエンティティで応答します。これは、BuildLocator の記事で説明されている defaultFilter ディメンションロジックに対応します。その結果、デフォルトのブランチで開始された成功した非個人ビルドのみが応答に表示されます。このデフォルトのフィルターを無視して最近のビルドを取得するには、次のコマンドを実行します。
エンドポイント応答はページ付けされます。Builds の nextHref または prevHref プロパティを使用して、応答ページを移動します。または、count (返されたビルドの数)および start (最初に返されたビルドの位置)ディメンションを使用して、返されるビルドを制御することもできます。
この例では、リクエストはコレクションの 15 番目の要素から始まる 10 個のビルドを返します。リクエスト内の他のディメンションは、返されるビルドの順序と位置に影響を与える可能性があることに注意してください(たとえば、現在実行中のビルドを除外すると、N 番目の位置の要素が変更される可能性があります)。
特定のビルドを取得する
BuildLocator は他の多くの寸法を受け入れることができます。それらのいくつかが含まれます:
id:<internal build id>— 特定のビルドを参照する必要がある場合は、内部ビルド ID を使用します。number:<build number>— ビルド構成がすでに指定されている場合、ビルド番号でビルドを検索します。project:<project locator>— リストを ProjectLocator にあるプロジェクトのビルドに制限します(プロジェクトの直下のビルドタイプに属します)。affectedProject:<project locator>— リストを ProjectLocator で見つかったプロジェクトのビルドに制限します(プロジェクトで直接または間接的に任意のビルドタイプに属します)。buildType:(<buildTypeLocator>),defaultFilter:false— BuildTypeLocator にあるビルド構成のすべてのビルド。tag:<tag>— タグ付きビルドを取得します。tag:<tag1>, tag:<tag2>などのタグのリストが指定されている場合、指定されたすべてのタグを含むビルドのみが返されます。status:<SUCCESS/FAILURE/UNKNOWN>— リストは、指定されたステータスでのみビルドされます。user:(<userLocator>)— ビルドを、UserLocator で見つかったユーザーによってトリガーされたもののみに制限します。personal:<true/false/any>— 個人フラグによる制限ビルド。デフォルトでは、パーソナルビルドは含まれていません。canceled:<true/false/any>— キャンセルされたフラグによってビルドを制限します。デフォルトでは、キャンセルされたビルドは含まれません。failedToStart:<true/false/any>— 開始失敗フラグによるビルドの制限。デフォルトでは、ビルドの開始に失敗したものは含まれていません。state:<queued/running/finished>— 指定された状態でビルドを制限します。running:<true/false/any>— 実行中のフラグによるビルドの制限。デフォルトでは、実行中のビルドは含まれていません。state:running,hanging:true— ぶら下がっているビルドをフェッチします。pinned:<true/false/any>— 固定フラグによるビルドの制限。branch:<branch locator>— ブランチによってビルドを制限します。BranchLocator は、UI に表示されるブランチ名、または(name:<name>,default:<true/false/any>,unspecified:<true/false/any>,branched:<true/false/any>)にすることができます。デフォルトでは、デフォルトのブランチからのビルドのみが返されます。すべてのビルドを取得するには、次のロケーターを追加します:branch:default:anyエンドポイント全体は次のようになります。GET /app/rest/builds/?locator=buildType:MyBuildConfigurationID,branch:default:any.revision:<REVISION>— リビジョンごとにビルドを検索します。たとえば、このエンドポイントは、指定されたビルド構成のすべてのビルドをリビジョンとともに返します。GET /app/rest/builds?locator=revision:(MyRevision),buildType:(id:MyBuildConfigurationID)agentName:<name>— 返すエージェント名は、指定された名前のエージェントで実行されたビルドのみを返します。sinceBuild:(<buildLocator>)— ビルドのリストを、指定されたものの後のビルドのみに制限します(別のネストされた BuildLocator を使用)。sinceDate:<date>— ビルドのリストは、指定された日付以降に開始されたもののみに制限してください。日付は、REST API によって返される日付と同じ形式である必要があります(たとえば、20130305T170030 + 0400)。queuedDate/startDate/finishDate:(date:<time-date>,build:<build locator>,condition:<before/after>)— BuildLocator で指定された時間に基づいてビルドをフィルターします。たとえば、2017 年 11 月 23 日以降に終了したビルドの場合、20:34:46、GMT+1 タイムゾーンを使用します。GET /app/rest/builds?locator=finishDate:(date:20171123T203446%2B0100,condition:after)count:<number>— 指定された数のビルドのみを提供します。start:<number>— 指定された位置(ゼロベース)から始まるリストからビルドをリストします。lookupLimit:<number>— 処理を最新の N ビルドのみに制限します(デフォルトは 5000 です)。最新の N ビルドのいずれも、ビルドロケーターの他の指定された基準に一致しない場合、単一のビルド要求に対して 404 応答が返され、複数のビルド要求に対して空のコレクションが返されます。関連する注記を参照してください。
キューに入れられたビルドを取得する
キューに入れられたすべてのビルドを取得するには、次を使用します。
エンドポイントは、ビルドエンティティのインスタンスで応答します。BuildQueueLocator を使用すると、リクエストをさらに制限できます。例: 特定の構成でキューに入れられたすべてのビルドを取得するには:
または、キューに入れられた特定のビルドの詳細をフェッチします。
これは、キューに入れられたビルドと互換性のあるエージェントを見つけるのに役立つ場合があります。
応答はエージェントとしてフォーマットされます。
変更を取得
変更エンティティは、TeamCity UI のビルドの変更に表示されるのと同じ方法で変更を表すことを目的としています。ほとんどの場合、これらは現在のビルドと以前のビルド間のコミットです。changes ノードはデフォルトではビルドに含まれず、href 属性のみがあります。href で指定されたリクエストを実行すると、必要な変更が加えられます。
特定のビルドに関連するすべての変更を取得するには、次を使用します。
locator は ChangeLocator として入力されます。
特定の変更の詳細を取得するには、次を使用します。
変更内のファイルについては、changeType をアドレス指定して、ファイルが added、edited、removed、copied であるか unchanged であるかを確認できます。
この要求は、MyProjectId プロジェクトの変更を返します。
ビルド構成 BuildConfigurationID での特定の変更以降の変更を見つけるには、次を使用します。
最後に、ビルド構成で保留中のすべての変更を見つけるには、次を使用します。
特定のリビジョンのビルドを取得する
特定のリビジョンのすべてのビルドを取得するには、次を使用します。
依存関係 / 依存関係のビルドを取得する
現在のビルドに依存するビルドを取得するには、from:(id:<build_ID>) 演算子をロケーターに追加します。例: ビルド "A" がビルド "B" に依存している場合、from:(id:A) ロケーターは何も返しません ("A" に依存するビルドはありません)、from(id:B) ロケーターはビルド "A" ("A" は "B" に依存します) を返します。includeInitial パラメーターを有効にして、ターゲットビルドを出力に追加することもできます。
現在のビルドが依存するすべてのビルドを取得するには、to:(id:<build_ID>) キーワードを使用します。ビルド "A" がビルド "B" に依存している場合、to:(id:A) ロケーターはビルド "B" を返し ("A" は "B" への依存関係があります)、to(id:B) は何も返しません ("B" は他のビルドに依存しません)。
上記の例の XXXX はビルドの ID であり、ビルド構成ではないことに注意してください。
関連ページ:
ビルド
特定の CI/CD ジョブを実行するプロセス。ほとんどのビルドは、独自の細かいアクションを実行する複数の連続したステップで構成されます。ビルドは、ビルド構成 (BuildType) で指定された設定に従って実行されます。さまざまなビルドアクションの例については、ビルドの管理セクションを参照してください。Properties:id ビルドの自動生成された一意の ID。タスク ID ビルドタイプ ID 対応するビルド構成の ID を返します。この構成自体を取得するには、代わりに buildType プロパティ...
ビルドの開始とキャンセル
この記事では、TeamCity RESTAPI を介したビルドの開始とキャンセルに関する一般的なユースケースについて説明します。外部ソフトウェアから TeamCity ビルドを開始します。コマンドラインビルドランナーから RESTAPI を呼び出して、複雑なビルドロジックを実装します。通常のビルドを開始する:ビルドを開始できるようにするには、次のエンドポイントを介してビルドキューにアクセスする必要があります。/app/rest/buildQueue 新しいビルドをキューに入れるには、次の 2 つ...