Build History API

此功能仅适用于 Incredibuild 的 Enterprise Plan

您可以在 JSON 文件中接收关于您的构建数据。这允许您使用第三方工具获取并在仪表板中查看这些数据,以及存储以供参考和分析。

可按时间、构建组和其他字段过滤数据。该 API 需要 API 密钥和企业许可证。

请注意,Incredibuild 仅在我们的数据库中存储最后 200,000 个构建。

请求

端点

访问 https://<coordinator IP>:8000/api/builds?coordinatorId=<coordinator ID>&version=<API version>&<other filters>

版本是 Incredibuild API 版本对于构建数据 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 仅包括由特定 Initiator 启动的构建 字符串
buildGroup 仅包括由特定 Build Group 中的 Initiator 运行的构建 字符串
buildTitle 仅包括具有指定标题的构建 字符串

buildStatus

仅包括与特定状态匹配的构建

{a,b,c,d}

buildDurationFrom

仅包括至少为该长度的构建

整数(秒)

buildDurationTo

仅包括短于该值的构建

整数(秒)

buildType

仅包括与特定构建类型匹配的构建

{Build, Clean, Rebuild, Unknown}

示例:

  • 返回所有构建:

    访问 https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0

  • 返回在特定时间之后启动的构建:

    访问 https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&buildStartTimeFrom=2023-08-17T16:01:29.000Z

  • 返回从 Default Build Group 运行的构建:

    访问 https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&buildGroup=Default

  • 返回 build type=Rebuild 的构建

    访问 https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&buildType=Rebuild

如果您的结果返回超过 300 个构建,您将看到 totalCount 大于 300,但 buildsCount 值为300(如下例所示)。如需查看下一个 300,请复制 nextPageToken 值并用于另一个请求,如下所示:

GET https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&nextPageToken="<value in JSON below>"

响应

响应为包含多达 300 个构建的 JSON 文件。

字段 描述
totalCount 与请求匹配的构建总数
buildsCount 此 JSON 中包含的构建数量。如果该数量小于 totalCount,则代表有 300 多个构建,并且不可能包含在一个 JSON 中。如需查看下一个 300,请复制 nextPageToken 并用作另一个请求的参数。例如:GET https://10.132.15.166:8000/api/builds?coordinatorId=12345&version=1.3.0&nextPageToken="NjAw"
nextPageToken 请参阅 buildsCount
构建

文件中包含的构建数组

coordinatorId

与此构建关联的 Coordinator ID

buildId

构建 ID

initiatorId

启动构建的代理 ID

startTime

开始构建的时间

endTime

结束构建的时间

duration

构建长度,秒

buildPriority

 

buildTitle

 

buildStatus

构建完成时的状态

buildType

 

helpers

参与此构建的 Helpers 列表

totalWorkingHelpers

协助此构建的唯一 Helpers 总数

maxInitiatorCores

用于运行此构建的最大 Initiator 内核数

avgInitiatorCores

用于运行此构建的平均 Initiator 内核数

maxConcurrentWorkingHelpers

在此构建期间一次工作应用的最大唯一 Helpers 数量

avgConcurrentWorkingHelpers

在此构建期间一次工作应用的平均唯一 Helpers 数量

avgBusyHelperCores

在此构建期间一次工作应用的平均 Helper 内核数

maxBusyHelperCores

在此构建期间一次工作应用的最大 Helper 内核数

avgBusyCloudHelperCores

在此构建期间一次工作应用的平均 Cloud Helper 内核数

maxBusyCloudHelperCores

在此构建期间一次工作应用的最大 Cloud Helper 内核数

maxNeededHelperCores

请求的最大 Helper 内核数

avgNeededHelperCores

请求的平均 Helper 内核数

numberOfLocalTasks

针对此构建在 Initiator 上执行的任务总数

numberOfRemoteTasks

在物理机器(非云)上远程执行的任务总数

numberOfCloudTasks

在云机器上远程执行的任务总数

remoteCoreTime

用于远程(物理和云)执行任务的总时间(秒)

coreLimit

每次构建允许的最大 Helper 内核数设置

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"

        }]