我正在尝试获取Jenkins Build Queue中的构建数量。
我是否可以通过Jenkins命令获取队列中运行的构建数量?
答案 0 :(得分:11)
参见Jenkins'Remote access API.
使用以下命令访问API说明:
http://<Your Jenkins>/api/
和实际数据:
http://<Your Jenkins>/api/xml
Build队列有自己独立的API:
http://<Your Jenkins>/queue/api/
及其数据:
http://<Your Jenkins>/queue/api/xml
答案 1 :(得分:4)
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
注意:具有指定用户名的用户应该可以访问Jenkins脚本控制台。
答案 2 :(得分:3)
以下是上述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
答案 3 :(得分:2)
我只需要使用令人敬畏的“ jq”实用工具来定义bash变量,即可获得队列长度:
QUEUE_SIZE=$(curl -s -k http://<your-jenkins-here>/queue/api/json | jq '.items | length')
希望这会有所帮助。
答案 4 :(得分:0)
get_jobs()
Get list of jobs running.
Each job is a dictionary with ‘name’, ‘url’, and ‘color’ keys.
Returns: list of jobs, [ { str: str} ]