web-dev-qa-db-ja.com

キュー内のビルド数を取得するJenkinsコマンド

Jenkinsビルドキューのビルド数を取得しようとしています。

キューで実行されているビルドの数を取得するためのJenkinsコマンドを知っていますか?

16
Lokith

Jenkinsの 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 REST APIのシェルスクリプト実装です。

_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
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

usernameを指定したユーザーは、Jenkinsスクリプトコンソールにアクセスできる必要があります。

4

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} ]
0
mainframer

キューの長さを取得するために必要なのは、素晴らしい "jq"ユーティリティを使用したこの単一のbash変数の定義だけでした。

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

お役に立てれば。

0
matias elgart