用于获取队列中的构建数的Jenkins命令

brqmpdu1  于 2022-11-21  发布在  Jenkins
关注(0)|答案(6)|浏览(347)

我正在尝试获取Jenkins构建队列中的构建数。
我可以知道Jenkins命令来获取队列中运行的构建数量吗?

slmsl1lt

slmsl1lt1#

请 参阅 Jenkins 的 Remote access API.
使用 以下 命令 访问 API 描述 :

http://<Your Jenkins>/api/

中 的 每 一 个
和 实际 数据 :

http://<Your Jenkins>/api/xml

格式
构建 队列 有 自己 单独 的 API :

http://<Your Jenkins>/queue/api/

格式
其 数据 :

http://<Your Jenkins>/queue/api/xml

格式
或者 , 如果 您 喜欢 json 格式 , 也 可以 使用 json , 只需 将 URL 中 的 xml 替换 为 json 即可 :

http://<Your Jenkins>/queue/api/json

格式

vql8enpb

vql8enpb2#

使用Jenkins Script Console很容易做到这一点:

println Hudson.instance.queue.items.length
// => 2

也可以远程执行groovy脚本。例如,从命令行:

$ curl -u username:password -d "script=println Hudson.instance.queue.items.length" jenkins_url/scriptText
2

注意:具有指定 username 的用户应有权访问Jenkins脚本控制台。

ig9co6j1

ig9co6j13#

下面是前面提到的Jenkins REST API的shell脚本实现

_queuesize=$(curl -s -k -m 60 http://${yourjenkinsserver}:8180/jenkins/queue/api/xml 2>/dev/null | grep -c '<item>')
if [[ -z "${_queuesize}" ]]; then
  _queuesize=0;
fi
svgewumm

svgewumm4#

这个使用了令人敬畏的“jq”实用程序的bash变量定义就是我获得队列长度所需要的全部:

QUEUE_SIZE=$(curl -s -k http://<your-jenkins-here>/queue/api/json | jq '.items | length')

希望这对你有帮助。

wvt8vs2t

wvt8vs2t5#

请尝试Jenkins API in Python

get_jobs()
  Get list of jobs running.
  Each job is a dictionary with ‘name’, ‘url’, and ‘color’ keys.
Returns:    list of jobs, [ { str: str} ]
jaxagkaj

jaxagkaj6#

只是稍微相关,但如果你想监控队列大小,有一个munin的jenkins插件可以做到这一点(还有一些其他插件):
https://gallery.munin-monitoring.org/plugins/munin-contrib/jenkins_/

相关问题