Как остановить сборку в Jenkins через REST api?
У меня есть работа в Дженкинсе. Веб-сайт наших собственных триггеров создает эту работу через REST api. Иногда мы хотим прервать сборку. Иногда это может быть до начала сборки. В таких случаях у нас есть queueItem # вместо сборки #.
Как это сделать через REST api?
Ответы
Ответ 1
Если сборка началась, POST
on:
http://<Jenkins_URL>/job/<Job_Name>/<Build_Number>/stop
Остановит/отменит текущую сборку.
Если сборка не началась, у вас есть queueItem
, затем POST
on:
http://<Jenkins_URL>/queue/cancelItem?id=<queueItem>
Предполагается, что ваш Jenkins Server не был защищен, иначе вам нужно добавить BASIC authentication для пользователя с привилегиями Cancel.
Ответ 2
На самом деле этот вопрос уже дан. Поэтому я добавлю, как найти id=<queueItem>
, который я застрял в поиске этого решения, что будет полезно для других.
Итак, вы можете получить <queueItem>
, by - http://jenkins:8081/queue/api/json
Образец Output будет иметь тип json, подобный этому -
[{"_class":"hudson.model.Cause$RemoteCause","shortDescription":"Started by remote host 172.18.0.2","addr":"172.18.0.2","note":null}]}],"blocked":false,"buildable":false,"id":117,"inQueueSince":16767552,"params":"\nakey\t=AKIQ\nskey=1bP0RuNkr19vGze/bcb4ijDqVr8o\nnameofr=us\noutputtype=json\noid=284102\nadminname=admin","stuck":false,"task"
Вы должны взять "id":117
и проанализировать его -
queueItem =117
.
http://<Jenkins_URL>/queue/cancelItem?id=queueItem
Ответ 3
Возможно, вы хотите удаленно отправить сообщение http-запроса, чтобы остановить запущенную сборку, есть ключ FYI, задание jenkins может остановить другое задание (работает сборка), как и любой администратор jenkins, щелкнуть по кнопке X, когда работа запущена.
- Плагины запроса Http требуется Jenkins ver2.17
- Снимите флажок Запретить использование уязвимостей Cross Site Request Forgery. Менеджер Дженкинс → Настройка глобальной безопасности → Снимите флажок
- Настройка авторизации плагинов запроса Http. Менеджер Jenkins → Настройка системы → HTTP-запрос Базовая/дайджест-аутентификация → add. Убедитесь, что у пользователя есть разрешение на отмену работы.
- Запускается работа A. В задании B добавьте шаг сборки как HTTP-запрос, URL: http://Jenkins_URL/job/Job_A_Name/lastBuild/stop, режим HTTP: POST, авторизация выберите пользователя, которого вы только что установили, затем выполните задание B.
Готово