Дженкинс благополучно прерывает дочерний процесс
У меня есть работа Jenkins, которая запускает программу Python в кластере через SSH от ведомого устройства Windows. Программа имеет шаг очистки, который запускается с помощью оператора python finally для любого вида исключения. Я бы хотел, чтобы этот шаг очистки выполнялся, когда задание прерывается через веб-интерфейс Jenkins, но Jenkins, похоже, принудительно завершает этот процесс, не позволяя ему выполнить оператор finally. Согласно https://wiki.jenkins.io/display/JENKINS/Aborting+a+build процесс завершается с помощью API TerminateProcess в окнах.
Есть ли способ заставить Дженкинса просто прервать дочерний процесс и дождаться его завершения?
1 ответ
Одним из способов сделать это может быть добавление шага очистки как части "POST BUILD ACTION (execute shell)".
Когда вы прервете сборку (например, нажмите один раз на метку x), Jenkins все равно будет запускать действия после сборки. Jenkins прервет действие после сборки, если вы попытаетесь принудительно прекратить процесс (нажмите кнопку "x" несколько раз)
Для этого вам может понадобиться изменить / разбить ваши скрипты