首页 > 解决方案 > 完成后如何从 Jenkins 构建中获取构建详细信息的 json 响应

问题描述

我有一个运行 Jenkins 作业的 Jenkins 服务器 - JobA

我有一个 Java Spring Boot Web 服务,我在其中存储 Jenkins 构建数据并将其提供给各种其他系统。

我希望每当 JobA 完成每个构建时,它都应该调用我的 Web 服务上的一个端点并将构建数据(基本上与我通过调用 Jenkins API 获得的相同数据:)发布到我的 Web 服务的端点https://<my-jenkins-server>/job/JobA/<buildNumber>/api/json,它接受一个POST 请求和 JSON 有效负载以更新我的数据库中的构建详细信息,例如作业名称、构建编号、构建结果、构建 URL、构建持续时间、时间戳、测试结果等。

即使构建失败,仍应调用我的 Web 服务的端点。

我已经可以从上面的 REST API 调用中获取所有这些数据,但我不想使用它,因为如果我想在我的数据库中获取更新的数据,我将不得不多次轮询 Jenkins REST API, (比如可能每 15 分钟或更频繁)这将增加我的 Jenkins 服务器的负载。

我知道我可以设置一个 Jenkins 作业来调用脚本或调用另一个下游作业,然后我可以通过它调用curl POST对我的端点的请求。

但我的问题是我不知道在哪里/如何获取构建的 JSON 数据在POST请求中发送?

有人可以帮帮我吗?

标签: jenkinscontinuous-integrationjenkins-pluginswebhooks

解决方案


您可以获取 lastbuild 信息,并且有一个名为的字段building表示构建是否正在运行。

https://host/job/project/lastBuild/api/json?depth=1


推荐阅读