Как проверить статус сборки Jenkins без переключения в браузер?
При необходимости я могу создать сценарий с помощью JSON API, но мне было интересно, есть ли уже что-то подобное встроенное.
Как проверить статус сборки Jenkins без переключения в браузер?
При необходимости я могу создать сценарий с помощью JSON API, но мне было интересно, есть ли уже что-то подобное встроенное.
Ответы:
Я не мог найти встроенный инструмент, поэтому я сделал один:
источник
Проверьте, работает ли сборка или нет
Я попробовал скрипт Python в ответе на этот вопрос, но не смог заставить его работать. Я не знаю Python и не хотел тратить время на отладку, но смог прочитать достаточно сценария, чтобы получить от него вдохновение.
Все, что мне нужно сделать, это проверить, запущена ли сборка или нет. Для этого я использовал curl и grep, вот так:
curl http://myjenkins/job/myjob/lastBuild/api/json | grep --color result\":null
result\":null
вернет 0.result\":null
вернет 1.Не особенно элегантно, но работает достаточно хорошо для моих нужд.
Например, у меня есть сценарий Bash, который запускает сборку, а затем ожидает ее завершения:
Спасибо за вдохновение, Catskul!
источник
TypeError: cannot concatenate 'str' and 'NoneType' objects
. Я не знаю Python, поэтому я переключился на использование оболочки и добавил ваш ответ для вдохновения. Благодарность!Бывший мой коллега написал https://github.com/txels/autojenkins, в котором есть целая куча удобных функций и типа API для работы с экземпляром Jenkins из Python ...
источник
Другое решение Python:
источник
Вы можете использовать Groovy скрипт:
Виа Дженкинс-Кли
, где
=
означает стандарт в. Вы можете аутентифицироваться с--username <USER> --password <PASS>
или-i <SSH-PRIVATE-KEY>
.Виа Дженкинс-Кли через SSH
источник
Я думаю, что нашел более простой способ. Если я правильно понял, вы хотите проверить результат сборки - другими словами, был ли он успешным или неудачным.
Команда Jenkins CLI изменяет код выхода в зависимости от результата сборки, если в конце используется опция
-s
or-f
.Например,
или
Обратите внимание, что опция идет в конце; это не первое
-s
, которое используется для определения URL экземпляра Jenkins.И тогда, чтобы получить результат, вы можете использовать
$?
:Если результат равен 0, это был успех. Если это что-то отличное от 0, это был сбой.
Ссылка: Я не могу найти экземпляр общественного Дженкинс , который дает доступ к этой странице, но его можно найти в вашем локальном экземпляре Дженкинс:
http://<url of Jenkins Instance>/cli/command/build
. Это также объясняет разницу между-s
и-f
:источник
Вы можете использовать символический дескриптор
lastBuild
:result
Элемент в ответ содержит строку , описывающую исход сборки.источник
К счастью, есть jenkins-cli, который вы можете использовать для получения информации от Jenkins. К сожалению, вы не можете получить статус сборки, используя CLI - это означает, что ваше решение использовать JSON API не только правильно - это единственный программный способ сделать это.
Кроме того, хотя он выглядит так, как будто он
get-job
может делать то, что вы хотите, он на самом деле не возвращает результат - он только возвращает конфигурацию задания.источник
Еще один скрипт для CMD (Windows):
источник
Вы можете попробовать с этим,
источник