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

Автор: | 15/11/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

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