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

在获取 Helper 程序时,这个构建相对于其他构建的优先级(1 为最高,5 为最低)。

buildTitle

您为描述此构建而添加的元数据(可选)

buildStatus

构建完成时的状态

buildType

Build, Clean, Rebuild,等等

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

指示 Initiator 只能从高速缓存读取数据,还是也能向高速缓存写入数据。

cacheTaskHitsOriginalDuration

从 Build Cache 获取的所有任务的持续时间(毫秒)。

cacheServiceEndpoint

Build Cache 服务的地址

cacheLicenseAllowed

Build Cache 是否有足够的 Cache 核心(如果使用带有 Build Cache 的 Incredibuild for Cloud,则 Cloud Hour 云小时数)。

createdAt

生成此响应的 API 调用的日期和时间。

响应示例

以下示例显示了将包含在此 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"

        }]

从数据中提取更多信息

下载构建历史记录后,您可以在自己选择的数据库中访问它们。这样,您就可以查询数据,了解更多信息。下面是一些实例查询: