Дженкинс благополучно прерывает дочерний процесс - PullRequest
0 голосов
/ 29 октября 2018

У меня есть задание Jenkins, которое запускает программу на Python в кластере через SSH от ведомого устройства Windows. У программы есть шаг очистки, который запускается с помощью оператора python finally для любого вида исключения. Мне бы хотелось, чтобы этот шаг очистки выполнялся, когда задание прерывается через веб-интерфейс Jenkins, но Jenkins, похоже, принудительно завершает этот процесс, не позволяя ему выполнить оператор finally. Согласно https://wiki.jenkins.io/display/JENKINS/Aborting+a+build процесс завершается с помощью API TerminateProcess в Windows.

Есть ли способ заставить Дженкинса просто прервать дочерний процесс и дождаться его завершения?

1 Ответ

0 голосов
/ 29 октября 2018

Одним из способов сделать это может быть добавление шага очистки как части "POST BUILD ACTION (execute shell)".

Когда вы прервете сборку (например, нажмите один раз на метку x), Jenkins все равно будет запускать действия после сборки. Jenkins прервет действие после сборки, если вы попытаетесь принудительно прекратить процесс (нажмите кнопку «x» несколько раз)

Для этого вам может потребоваться изменить / разбить ваши скрипты

...