我正在尝试获取Jenkins构建队列中的构建数。我可以知道Jenkins命令来获取队列中运行的构建数量吗?
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 即可 :
json
xml
http://<Your Jenkins>/queue/api/json
格式
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脚本控制台。
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
svgewumm4#
这个使用了令人敬畏的“jq”实用程序的bash变量定义就是我获得队列长度所需要的全部:
QUEUE_SIZE=$(curl -s -k http://<your-jenkins-here>/queue/api/json | jq '.items | length')
希望这对你有帮助。
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} ]
jaxagkaj6#
只是稍微相关,但如果你想监控队列大小,有一个munin的jenkins插件可以做到这一点(还有一些其他插件):https://gallery.munin-monitoring.org/plugins/munin-contrib/jenkins_/
6条答案
按热度按时间slmsl1lt1#
请 参阅 Jenkins 的 Remote access API.
使用 以下 命令 访问 API 描述 :
中 的 每 一 个
和 实际 数据 :
格式
构建 队列 有 自己 单独 的 API :
格式
其 数据 :
格式
或者 , 如果 您 喜欢
json
格式 , 也 可以 使用json
, 只需 将 URL 中 的xml
替换 为json
即可 :格式
vql8enpb2#
使用Jenkins Script Console很容易做到这一点:
也可以远程执行groovy脚本。例如,从命令行:
注意:具有指定 username 的用户应有权访问Jenkins脚本控制台。
ig9co6j13#
下面是前面提到的Jenkins REST API的shell脚本实现
svgewumm4#
这个使用了令人敬畏的“jq”实用程序的bash变量定义就是我获得队列长度所需要的全部:
希望这对你有帮助。
wvt8vs2t5#
请尝试Jenkins API in Python。
jaxagkaj6#
只是稍微相关,但如果你想监控队列大小,有一个munin的jenkins插件可以做到这一点(还有一些其他插件):
https://gallery.munin-monitoring.org/plugins/munin-contrib/jenkins_/