Команда Jenkins, чтобы получить количество сборок в очереди
Я пытаюсь получить количество сборок в очереди сборки Jenkins.
Могу ли я узнать команду Jenkins, чтобы получить количество запусков в очереди?
Ответы
Ответ 1
См. Jenkins API удаленного доступа.
Доступ к описанию API с помощью:
http://<Your Jenkins>/api/
и фактические данные:
http://<Your Jenkins>/api/xml
У очереди Build есть свой отдельный API:
http://<Your Jenkins>/queue/api/
с его данными:
http://<Your Jenkins>/queue/api/xml
Ответ 2
Это легко сделать с Jenkins Script Консоль:
println Hudson.instance.queue.items.length
// => 2
Также возможно удаленно выполнить groovy Script. Например, из командной строки:
$ curl -u username:password -d "script=println Hudson.instance.queue.items.length" jenkins_url/scriptText
2
Примечание. Пользователь с указанным именем пользователя должен иметь доступ к консоли Jenkins Script.
Ответ 3
Вот реализация оболочки script упомянутого API-интерфейса Jenkins REST
_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 API в 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} ]