Jenkins: остановить зависший билд

Автор: | 11/15/2016
 

Jenkins.sh-600x600Имеется несколько запущенных билдов, которые «зависли» с сообщением в консоли «Click here to forcibly terminate running steps«:

jenkins_kill_unstopable_1

Нажатие на сообщение/ссылку не помогают.

Решение первое — curl и POST

Для того, что бы всё-таки остановить сборку — можно выполнить POST запрос вручную.

Кликаем правой кнопкой на ссылке «Click here to forcibly terminate running steps«, используем Inspect и копируем Ajax-запрос:

jenkins_kill_unstopable_2

jenkins_kill_unstopable_3

После чего — используем curl и отправляем запрос:

$ curl -X POST http://localhost/job/EU-api-staging-build/57/term

jenkins_kill_unstopable_4

Аналогично — поступаем с «Click here to forcibly kill entire build«, которое появилось после term:

jenkins_kill_unstopable_5

$ curl -X POST http://localhost/job/EU-api-staging-build/57/kill

jenkins_kill_unstopable_6

Проверяем оставшиеся запущенные джобы:

$ curl -s -g "localhost/computer/api/xml?tree=computer[executors[currentExecutable[url]],oneOffExecutors[currentExecutable[url]]]&xpath=//url&wrapper=builds"
<builds><url>http://52.***.***.52/job/referee-dev-build/5/</url><url>http://52.***.***.52/job/EU-api-staging-build/37/</url></builds>

EU-api-staging-build/57 — нет, убит.

EU-api-staging-build/37 — аналогичный зависший билд, убить таким же способом.

referee-dev-build/5/ — чей-то новый билд.

Решение нагуглено тут>>>, по запросу «jenkins «Click here to forcibly terminate running steps»«.

Решение второе — ScriptConsole

В Консоли Jenkins выполняем:

Jenkins.instance.getItemByFullName("JOBNAME").getBuildByNumber(BUILD_NUMBER).finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build"));

jenkins_cors_2

Нагуглено тут>>>, по тому же запросу.