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

Android项目集成Jenkins多项目流水线构建分支报错:文件不存在

问题分析与解决

1. 报错本质说明

你看到的/bin/sh: 0: pipeline@tmp/durable-abcdef/script.sh.copy: No such file or directory报错,指向的是Jenkins执行sh步骤时自动生成的临时脚本文件,并非你在代码里写入的/workspace/script.sh.copy。这个问题通常和Durable Task插件的心跳检测配置、Jenkins Agent的文件权限或磁盘空间有关。

2. 针对性修复方案

方案一:调整心跳检测参数

你当前设置的HEARTBEAT_CHECK_INTERVAL=86400(24小时)过大,可能导致Jenkins误判临时脚本已失效被清理,或是Agent端心跳检测异常。建议将值降低到合理范围,比如300秒(5分钟):

environment {
    JAVA_OPTS = "-Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=300"
}

方案二:检查Agent工作目录状态

  • 确认Jenkins Agent的运行用户对pipeline@tmp所在目录拥有完整的读写权限
  • 检查Agent所在机器的磁盘空间,避免因磁盘已满导致临时文件无法创建或被系统清理

方案三:修正脚本路径写法

你当前用绝对路径/workspace/script.sh.copy写入文件,若Jenkins的Workspace并非根目录下的/workspace,会引发路径错误。建议改用Jenkins内置的WORKSPACE变量或相对路径:

sh '''
echo "This is a temporary script" > "${WORKSPACE}/script.sh.copy"
'''

方案四:临时禁用心跳检测(用于排查)

如果以上方案无效,可临时禁用Durable Task的心跳检测逻辑,确认是否为参数设置导致的问题:

environment {
    JAVA_OPTS = "-Dorg.jenkinsci.plugins.durabletask.BourneShellScript.disableHeuristics=true"
}

3. 额外排查建议

  • 若使用Docker作为Agent,需确保容器内的临时目录挂载正确,且拥有足够权限
  • 查看Jenkins系统日志(Manage Jenkins → System Log),搜索durabletask相关日志,获取更详细的错误定位信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 15:12:09