You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins流水线共享库自定义步骤中处理中止清理逻辑?

在Jenkins共享库自定义步骤中实现可靠清理逻辑

完全可以在自定义步骤内部实现清理逻辑,无需依赖流水线的post块,核心是利用Groovy的try-finally结构来包裹任务与操作逻辑——无论任务正常完成、失败、被手动中止还是触发超时,finally块中的清理代码都会被执行。

修改后的自定义步骤代码

// myTask.groovy
void call(Map config = [:]) {
    try {
        // 放置耗时的核心任务逻辑
        echo "执行长时间运行的任务..."
        // 示例:模拟耗时操作
        sleep time: 30, unit: 'SECONDS'
    } finally {
        // 放置必须执行的清理逻辑,不受前面任务状态影响
        echo "执行清理操作..."
        // 示例操作:删除临时文件、关闭资源连接等
        // deleteDir()
    }
}

方案说明

  • try块包裹核心业务逻辑,不管该块内代码是成功完成、抛出异常,还是因构建中止/超时被强制打断,finally块都会触发执行
  • 这种方式将任务与对应清理逻辑封装在同一共享库步骤中,保证代码内聚性,无需在流水线的post块中单独维护分散的清理代码

额外注意事项

  • 如果清理逻辑本身存在抛出异常的风险,可以在finally块内嵌套一层try-catch,避免清理失败导致整个步骤报错
  • 确保清理逻辑具备幂等性,多次执行不会产生意外问题

内容的提问来源于stack exchange,提问作者trebor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:12:11