如何为特定的 Jenkins 工作设置“killSoftly”?

Mat*_*rše 11 java build gradle jenkins jenkins-plugins

我的 Jenkins 构建在构建和构建后步骤之间挂起。

控制台输出显示有 6 分钟的等待(但我已经看到等待长达一小时):

10:53:26 BUILD FAILED in 1m 7s
10:53:26 4 actionable tasks: 4 executed
10:53:26 Build step 'Invoke Gradle script' changed build result to FAILURE
10:53:26 Build step 'Invoke Gradle script' marked build as failure
11:09:29 [CucumberReport] Using Cucumber Reports version 4.9.0
Run Code Online (Sandbox Code Playgroud)

我发现这个这个问题有类似的问题,他们说解决方案是-DSoftKillWaitSeconds=0jenkins.xml.

但是,我需要一种方法来仅为特定作业设置选项,而不会弄乱全局 Jenkins 设置(我不想弄乱其他项目)。

编辑:

当我手动中止作业时,在 [CucumberReport] 步骤之前,仍会生成 Cucumber 报告。

我还检查构建环境选项中的如果构建被卡住复选框,则中止构建,超时策略设置为No Activity(超时秒数 = 2)。

当我使用这些设置构建项目时,构建将失败,并在构建历史记录中显示“0 秒后中止”,但控制台输出将相同。(没有任何变化,黄瓜报告将生成,但在一定的超时后)。

Ale*_*x O 4

无法选择特定于作业的值SoftKillWaitSeconds(该值源自 Jenkins 核心,作业名称未知)

我的建议是修复作业本身的中止处理,这样它就不会依赖于“软终止超时”。如果您在 Unix-ish 系统上运行,则可以通过在新进程组(set -m在 bash 中)中运行作业并(例如)设置适当的退出陷阱来确保这一点。