1

我有一个 Jenkins 工作,它通过来自 Windows 从站的 SSH 在集群上启动一个 python 程序。该程序有一个清理步骤,通过 python finally 语句触发任何类型的异常。我希望在通过 Jenkins Web 界面中止作业时运行此清理步骤,但 Jenkins 似乎强行终止此过程而不让它运行 finally 语句。根据https://wiki.jenkins.io/display/JENKINS/Aborting+a+build ,进程通过 Windows 中的 TerminateProcess API 终止。

有没有办法让詹金斯简单地中断一个子进程并等待它完成?

4

1 回答 1

2

一种方法是添加清理步骤作为“POST BUILD ACTION (execute shell)”的一部分。

当您中止构建时(例如单击一次 x 标记),Jenkins 仍将运行构建后操作。如果您尝试强制终止进程,Jenkins 将中止构建后操作(多次单击“x”标记)

为此,您可能需要修改/拆分脚本

于 2018-10-29T10:39:31.387 回答