jenkins - 完成后如何从 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
请求中发送?
有人可以帮帮我吗?
解决方案
您可以获取 lastbuild 信息,并且有一个名为的字段building
表示构建是否正在运行。
推荐阅读
- node.js - 如何在不启动服务器的情况下编写 api 请求测试?
- pandas - 数据框的多级旋转
- c++ - 我不明白 unordered_set 构造函数的原型
- jms - 无法在 JMS 桥 JBoss 7.3 中查找源连接工厂
- logging - GCP 日志:如何在对象数组中查询(类似正则表达式)
- okta - Angular,在标头中发送请求后出现错误 500
- node.js - Express.js 在尝试从 sqlite 中删除行时返回“TypeError:无法读取未定义的属性 'id'”
- python - 使用类型提示指定多个类
- microservices - 在域驱动的微服务中,是否应该在域外进行通信?
- mongodb - MongoDB 聚合,以循环方式组合 2 个数组