ビルド履歴のAPI
この機能は、Incredibuild のEnterprise Plan でのみ利用可能です。
ビルドに関するデータをJSONファイルで受け取ることができます。これにより、このデータをサードパーティのツールを使用したダッシュボードへの表示、参照や分析ののための保存が可能です。
データは、時間、Build Group、その他のフィールドでフィルタリングすることがでできます。このAPIには、API キーおよびEnterpriseライセンスが必要です。
Incredibuildは過去200,000回のビルドのみをデータベースに保存しています。
リクエスト
エンドポイント
GET https://<coordinator IP>:8000/api/builds?coordinatorId=<coordinator ID>&version=<API version>&<other filters>
ここでのバージョン とは Incredibuild API のバージョンです。Build Data APIについては、現在バージョン1.3.0のみがサポートされています。
ヘッダー
リクエストには、client-api-key というキーを持つヘッダーと、API キー の値を文字列として含める必要があります。
エンドポイントフィルター:
リクエスト エンドポイントに以下のフィルターを追加して、結果を制限することができます。
フィールド | 値 | 値 |
---|---|---|
buildStartTimeFrom | この時間より以前に開始したビルドのみを含める | ISOフォーマット。例:2022-09-28T16:01:29.000 |
buildEndTimeTo | この時間より以前に終了したビルドのみを含める | ISOフォーマット。例:2022-09-28T16:01:29.000 |
initiatorID | 特定のイニシエータによって開始したビルドのみを含む。 | string |
buildGroup | 特定のBuild Groupのイニシエータによって実行されたビルドのみを含める | string |
buildTitle | 指定されたタイトルのビルドのみを含める | string |
buildStatus |
特定のステータスに一致するビルドのみを含める |
{a,b,c,d} |
buildDurationFrom |
少なくともこの長さのビルドのみを含める |
整数(秒) |
buildDurationTo |
この値より短いビルドのみを含める |
整数(秒) |
buildType |
特定のビルドタイプに一致するビルドのみを含める |
(ビルド、クリーン、リビルド、不明) |
コマンドの例:
-
すべてのビルドを返す。
GET https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0
-
特定の時間以降に開始したビルドを返す。
GET https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&buildStartTimeFrom=2023-08-17T16:01:29.000Z
-
デフォルトのBuild Groupから実行されたビルドを返す。
GET https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&buildGroup=Default
-
ビルドタイプ=Rebuildのビルドを返す
GET https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&buildType=Rebuild
以下の例が示す通り、結果が300以上のビルドを返した場合、totalCountは300以上ですが、billsCountの値は300であることが分かります。次の300ビルドを表示するには、nextPageToken の値をコピーし、次のように別のリクエストで使用します。
GET https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&nextPageToken="< 以下のJSONの値>"
応答
応答は、最大300ビルドを含むJSONファイルです。
フィールド | 説明 |
---|---|
totalCount | リクエストに一致したビルドの総数 |
buildsCount | このJSONに含まれるビルド数。この数値がtotalCount以下の場合は、ビルドが300以上あり、それらをすべて1つのJSONに含めることができないことという事を意味します。次の300ビルドを表示するには、「nextPageToken」の値をコピーし、別のリクエストのパラメータとして使用します。例: GET https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&nextPageToken="NjAw" |
nextPageToken | buildsCount を参照してください |
ビルド |
ファイルに含まれるビルドの配列 |
coordinatorId |
このビルドに関連するコーディネーターのID |
buildId |
ビルドのID |
initiatorId |
ビルドを開始したエージェントのID |
startTime |
ビルドが開始した時間 |
endTime |
ビルドが終了した時間 |
Duration |
ビルドの長さ(秒) |
buildPriority |
|
buildTitle |
|
buildStatus |
ビルド完了時のステータス |
buildType |
|
ヘルパー |
このビルドに参加したヘルパーのリスト |
totalWorkingHelpers |
このビルドをアシストした一意のヘルパー総数 |
maxInitiatorCores |
このビルドの実行に使用される イニシエータ コアの最大数 |
avgInitiatorCores |
このビルドの実行に使用される イニシエータ コアの平均数 |
maxConcurrentWorkingHelpers |
このビルド中に一度に動作する一意のヘルパーの最大数 |
avgConcurrentWorkingHelpers |
このビルド中、一度に動作する一意のヘルパーの平均数 |
avgBusyHelperCores |
このビルド中、一度に動作したヘルパーコアの平均数 |
maxBusyHelperCores |
このビルド中、一度に動作したヘルパーコアの最大数 |
avgBusyCloudHelperCores |
このビルド中、一度に動作したクラウドヘルパーコアの平均数 |
maxBusyCloudHelperCores |
このビルド中、一度に動作するクラウドヘルパーコアの最大数 |
maxNeededHelperCores |
要求されたヘルパーコアの最大数 |
avgNeededHelperCores |
要求されたヘルパーコアの平均数 |
numberOfLocalTasks |
このビルドに対して イニシエータ 上で実行されたタスクの総数 |
numberOfRemoteTasks |
物理マシン(クラウドではない)上でリモート実行されたタスクの総数 |
numberOfCloudTasks |
クラウドマシン上でリモート実行されたタスクの総数 |
remoteCoreTime |
リモート(物理およびクラウド)でのタスク実行に使用された時間の合計(秒) |
coreLimit |
ビルドごとに許可される同時ヘルパーコアの最大数の設定 |
totalCacheableTasks |
|
cacheTaskHits |
Build Cacheを使用している場合、Build Cacheからの出力を再利用することによって省略されたタスクの数。 |
cacheTaskMiss |
Build Cacheを使用している場合、Build Cacheで一致するタスクの検索に失敗した後に実行されたタスクの数。 |
cacheInitiatorRole |
|
savedTime |
Build Cacheを使用することで節約できる時間の見積もり |
cacheServiceEndpoint |
|
cacheLicenseAllowed |
|
createdAt |
|
応答例
次の例は、このJSONに含まれる最初のビルドを表示します。
{
"totalCount":400
"buildsCount":300
"nextPageToken":"NjAw"
"builds": [
{
"coordinatorId": "c407c0b4-b257-490a-91da-70b7bb5f0c8f",
"buildId": "{0312b602-8d53-4443-afe5-2bd9f00c33d7}",
"initiatorId": "64b4d714-fcde-4768-82ac-cdbdfbfa5343",
"initiatorName": "Initiator#313",
"startTime": "2023-08-18T20:05:42.708Z",
"endTime": "2023-08-18T22:41:27.097Z",
"duration": 9344389,
"buildPriority": 3,
"buildGroup": "Build Group 17",
"buildTitle": "Build Title 5",
"buildStatus": "Failure",
"buildType": "Rebuild",
"helpers": [
"helper0",
"helper1",
"helper2",
"helper3",
"helper4",
"helper5",
"helper6",
"helper7",
"helper8",
"helper9",
"helper10",
"helper11",
"helper12",
"helper13",
"helper14",
"helper15",
"helper16",
"helper17",
"helper18",
"helper19",
"helper20"
],
"totalWorkingHelpers": 9,
"maxInitiatorCores": 48,
"avgInitiatorCores": 94,
"maxConcurrentWorkingHelpers": 97,
"avgConcurrentWorkingHelpers": 91,
"avgConcurrentBusyHelpers": 1,
"maxConcurrentBusyHelpers": 30,
"avgConcurrentBusyCloudHelpers": 50,
"maxConcurrentBusyCloudHelpers": 59,
"maxNeededHelperCores": 29,
"avgNeededHelperCores": 84,
"numberOfLocalTasks": 36,
"numberOfRemoteTasks": 83,
"numberOfCloudTasks": 94,
"remoteCoreTime": 78,
"coreLimit": 11,
"totalCacheableTasks": 32,
"cacheTaskHits": 8,
"cacheTaskMiss": 31,
"cacheInitiatorRole": 72,
"savedTime": 81,
"cacheServiceEndpoint": "endpoint",
"cacheLicenseAllowed": true,
"createdAt": "2023-08-20T07:27:30.425Z"
}]