【问题标题】:Jenkins command to get number of builds in queueJenkins命令获取队列中的构建数量
【发布时间】:2015-07-10 09:59:38
【问题描述】:

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

我可以知道 Jenkins 命令来获取队列中运行的构建数量吗?

【问题讨论】:

    标签: jenkins jenkins-cli


    【解决方案1】:

    见詹金斯的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
    

    【讨论】:

      【解决方案2】:

      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()
      【解决方案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
      

      【讨论】:

      • 对我来说,我必须从 url 中删除“jenkins”:http://${yourjenkinsserver}:8180/queue/api/xml
      【解决方案4】:

      这个使用了不起的“jq”实用程序的单个 bash 变量定义是我获得队列长度所需的全部内容:

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

      希望这会有所帮助。

      【讨论】:

      • 我们如何获得工作名称?
      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-10
        • 2016-06-30
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 2012-08-18
        相关资源
        最近更新 更多