完成后如何从Jenkins构建中获取构建细节的json响应

时间:2019-03-21 21:26:24

标签: jenkins continuous-integration jenkins-plugins webhooks

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

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

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

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

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

我知道我可以设置一个Jenkins作业来调用脚本或调用另一个下游作业,然后通过该作业我可以调用curl POST请求直到结束。

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

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

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

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