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

Lok*_*ith 15 jenkins jenkins-cli

我试图获取Jenkins Build Queue中的构建数量.

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

Ger*_*ica 14

请参阅Jenkins的远程访问API.

访问API说明:

  http://<Your Jenkins>/api/
Run Code Online (Sandbox Code Playgroud)

以及实际数据:

  http://<Your Jenkins>/api/xml
Run Code Online (Sandbox Code Playgroud)

Build队列有自己独立的API:

  http://<Your Jenkins>/queue/api/
Run Code Online (Sandbox Code Playgroud)

及其数据:

  http://<Your Jenkins>/queue/api/xml
Run Code Online (Sandbox Code Playgroud)


Vit*_*upt 5

使用Jenkins 脚本控制台很容易做到这一点:

println Hudson.instance.queue.items.length
// => 2
Run Code Online (Sandbox Code Playgroud)

也可以远程执行 groovy 脚本。例如,从命令行:

$ curl -u username:password -d "script=println Hudson.instance.queue.items.length" jenkins_url/scriptText
2
Run Code Online (Sandbox Code Playgroud)

注意:具有指定用户名的用户应该有权访问 Jenkins 脚本控制台。

  • 请注意,在最近的版本中,调用现在是 `Jenkins.instance.queue.items.size()`,或者如果您从脚本调用它,则是 `jenkins.model.Jenkins.instance.queue.items.size() ` (3认同)

Nic*_*ine 5

这是上述 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
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,我必须从 url 中删除“jenkins”:http://${yourjenkinsserver}:8180/queue/api/xml (2认同)