Jenkins:如何从命令行访问构建(lastBuild/API/json)细节

e3bfsja2  于 5个月前  发布在  Jenkins
关注(0)|答案(4)|浏览(69)

我有一个使用jenkins的构建设置,并配置了100多个作业。目前,我需要从命令行获取构建细节的值。

jenkins本地ip /job/test_3/lastBuild/API/json
我能够看到所有的构建值,如作业名称,状态,时间戳等。
如何从命令行检索这些值?

aiazj4mn

aiazj4mn1#

它是一个 JSON API,因此您可以简单地格式化包含API所需部分的URL,并使用 curl 检索 JSON

http://<server>/job/test_3/lastBuild/api/json

字符串
要获得所有100个,您可能需要使用某种脚本,无论是 bashPython 或类似脚本,以便您可以将 curl 命令放入循环中,其中 build number 为循环索引加1。
如果你只是想执行一堆 curl 命令来获取原始的 JSONbash 可能是最简单的。
该URL的形式为:

http://<server>/job/test_3/<loopVar + 1>/api/json

yebdmbv4

yebdmbv42#

Ken是正确的,使用http请求,注意他的示例将允许您检索一个特定作业的所有已保存构建的结果。如果您需要检索100多个作业中每一个的最后一个构建的状态,我建议如下:(通过调用http:/api/json)-对于/api/json的每个作业调用-在结果对象中查找'lasBuild'字段-调用/json/api以检索所有需要的信息
最好用Python,Perl,Groovy,任何你觉得舒服的东西。

qhhrdooz

qhhrdooz3#

在bash中执行下面的命令。

curl -s“hostname/hostIP:port/view/z-admin/job/MSP_PROMOTE/lastBuild/API/json”|python -mjson工具

  • curl curl是一个工具,可以使用支持的协议之一(DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP 3S,RTMP,RTSP,SCP,SFTP,SMB,SMBS,SMTP,SMTPS,TELNET和TFTP)从服务器传输数据或将数据传输到服务器。该命令旨在无需用户交互即可工作。请参阅了解更多关于curl的信息:(https://curl.haxx.se/docs/manpage.html
  • “python -mjson tool”这是python json lib,可以让你看到json转储数据。得到json数据后,做grep,cut,paste你想要的排序。
cbwuti44

cbwuti444#

我知道这是一个很老的帖子,但只是想帮助那些仍然在挣扎的人。@khampson的解决方案是正确的,但我只是添加了一点。要访问json API,您首先需要为用户创建一个API令牌,并在@khampson建议的URL中使用它:
第一个月
使用jq来美化:
curl -u <username>:<API Token> http://<server IP>:<port>/job/<project name>/lastBuild/api/json | jq

相关问题