Jenkinsビルドキューのビルド数を取得しようとしています。
キューで実行されているビルドの数を取得するためのJenkinsコマンドを知っていますか?
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
これは 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スクリプトコンソールにアクセスできる必要があります。
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} ]
キューの長さを取得するために必要なのは、素晴らしい "jq"ユーティリティを使用したこの単一のbash変数の定義だけでした。
QUEUE_SIZE=$(curl -s -k http://<your-jenkins-here>/queue/api/json | jq '.items | length')
お役に立てれば。