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

时间:2015-07-10 09:59:39

标签: jenkins jenkins-cli

我正在尝试获取Jenkins Build Queue中的构建数量。

我是否可以通过Jenkins命令获取队列中运行的构建数量?

5 个答案:

答案 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)

尝试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} ]