【发布时间】:2015-07-10 09:59:38
【问题描述】:
我正在尝试获取 Jenkins 构建队列中的构建数量。
我可以知道 Jenkins 命令来获取队列中运行的构建数量吗?
【问题讨论】:
标签: jenkins jenkins-cli
我正在尝试获取 Jenkins 构建队列中的构建数量。
我可以知道 Jenkins 命令来获取队列中运行的构建数量吗?
【问题讨论】:
标签: jenkins jenkins-cli
见詹金斯的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
【讨论】:
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 脚本控制台。
【讨论】:
Jenkins.instance.queue.items.size(),或者如果你是从脚本调用它,jenkins.model.Jenkins.instance.queue.items.size()
这是上述 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
【讨论】:
这个使用了不起的“jq”实用程序的单个 bash 变量定义是我获得队列长度所需的全部内容:
QUEUE_SIZE=$(curl -s -k http://<your-jenkins-here>/queue/api/json | jq '.items | length')
希望这会有所帮助。
【讨论】:
get_jobs()
Get list of jobs running.
Each job is a dictionary with ‘name’, ‘url’, and ‘color’ keys.
Returns: list of jobs, [ { str: str} ]
【讨论】: