我一整天都在调试这个问题,但没有成功。
问题:Bash脚本在Linux CentOS7虚拟机(jenkins构建代理)上执行成功,但在jenkins构建过程中失败。
下面是简单的脚本:
#! /bin/bash
echo "before beyond compare command"
bcompare @"bc_report.ps1" "./Output_Base/<Folder_Name>" "./Output_Compare/<Folder Name>" "Report.html"
echo "after beyond compare command"
Jenkins构建日志的输出如下:
before beyond compare command
after beyond compare command
在Jenkins构建期间查看VM时,我没有看到正在生成的工件。在Jenkins构建期间的用户是Root,当在本地执行脚本时,我也成功地以Root身份这样做。
我很确定这是詹金斯的问题,只是似乎不能弄清楚。有人看到类似的吗?
Linux的Beyond Compare 4需要X-Window/GUI会话才能运行,即使是脚本。作为cron作业或在没有X-Window客户端的SSH终端中,用于Linux脚本的Beyond Compare将无法运行。这可能是导致Jenkins作业失败的原因。
Beyond Compare 4 for Windows没有脚本的GUI会话要求。Linux和macOS的Beyond Compare 4都需要脚本的GUI会话。删除Linux和macOS上脚本的GUI会话要求是未来版本的功能请求列表。