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

22

我正在尝试获取Jenkins构建队列中的构建数量。

请问Jenkins命令是什么,可以获取在队列中运行的构建数量?

6个回答

20

请查看Jenkins的远程访问API

使用以下方式访问API描述:

  http://<Your Jenkins>/api/

并且使用以下代码来获取实际数据:

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

构建队列有自己独立的API:

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

使用其数据:

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

如果您更喜欢使用json格式,可以选择该选项,只需在URL中将xml替换为json:

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

7

使用Jenkins脚本控制台很容易实现:

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脚本控制台。

4
请注意,最近版本中调用的方式已更改为 Jenkins.instance.queue.items.size(),或者如果您从脚本中调用它,则为 jenkins.model.Jenkins.instance.queue.items.size()。请将其翻译为中文。 - jpyams

6
以下是所提到的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
对我来说,我必须从URL中删除“jenkins”:http://${yourjenkinsserver}:8180/queue/api/xml - Benjamin Castor

4

使用强大的“jq”工具定义单个bash变量就足以获取队列长度:

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

希望这能帮到您。

我们如何获取作业名称? - Tula

1

0
尝试使用Python中的Jenkins API
get_jobs()
  Get list of jobs running.
  Each job is a dictionary with ‘name’, ‘url’, and ‘color’ keys.
Returns:    list of jobs, [ { str: str} ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接