在 Jenkins 上运行作业时,我得到以下控制台输出:
在工作空间/home/admin/.jenkins/jobs/ramdisk/workspace
[SSH] 执行预构建脚本:
./build_script.sh
[SSH] 退出状态:127
[SSH] 执行构建后脚本:
[ SSH] 退出-状态:0
完成:成功
当我在终端上手动运行上述脚本时,没问题。你能指导一下这里可能是什么问题吗?
在 Jenkins 上运行作业时,我得到以下控制台输出:
在工作空间/home/admin/.jenkins/jobs/ramdisk/workspace
[SSH] 执行预构建脚本:
./build_script.sh
[SSH] 退出状态:127
[SSH] 执行构建后脚本:
[ SSH] 退出-状态:0
完成:成功
当我在终端上手动运行上述脚本时,没问题。你能指导一下这里可能是什么问题吗?
首先,当您在终端上手动运行脚本时,您也可能会获得退出状态 127,但由于您没有检查终端上的退出状态,因此您不会注意到它。
Jenkins 假设只有退出代码 0 表示成功。任何其他退出代码都意味着失败。如果你的 build_script.sh 以非标准方式使用退出代码,它会让 Jenkins 认为它失败了。
直接在机器上执行以下操作:
./build_script.sh
echo $?
确保在脚本命令之后立即执行 echo 命令,而不执行任何其他操作。这将在命令行上打印退出代码。在这里回答你得到什么。
其次,在文本编辑器(vim、nano,无论你使用什么)中打开 build_script.sh 并搜索exit 127
. 如果找到它,请查看它从哪个块退出。如果您在阅读脚本时遇到问题,请将脚本的内容(或只是您找到的块exit 127
)粘贴到此处,我们可以告诉您为什么脚本认为它需要退出。