Jenkins不会因SVN错误E175002而中止
我正在从svn目录上的Jenkins调用Jenkins不会因SVN错误E175002而中止,jenkins,svn,jenkins-pipeline,Jenkins,Svn,Jenkins Pipeline,我正在从svn目录上的Jenkins调用SVNLS,以获得与特定模式匹配的路径列表(稍后我将进一步处理) 也许不是很好,但目前它是这样工作的: def proc = bat (returnStdout: true, script: '@svn ls https://path/to/my/repo/trunk -R --trust-server-cert-failures=unknown-ca --non-interactive | findstr /R "^[^_].*_src/$" | fin
SVNLS
,以获得与特定模式匹配的路径列表(稍后我将进一步处理)
也许不是很好,但目前它是这样工作的:
def proc = bat (returnStdout: true, script: '@svn ls https://path/to/my/repo/trunk -R --trust-server-cert-failures=unknown-ca --non-interactive | findstr /R "^[^_].*_src/$" | findstr /R "^FolderA ^FolderB" | findstr /V "_test"').trim()
问题
有时由于连接问题,svnls
命令失败,Jenkins作业中止(这完全正常,因为这是预期的行为)。
但是,有时,似乎只有一些文件夹/子文件夹暂时无法访问,我收到一条错误消息,但这似乎不是来自svn ls
的错误信号:
svn: E175002: Unexpected server error 500 'Internal Server Error' on 'path/to/a/folder
这是一个问题,因为管道不会中止,而是继续,并且proc
的内容只包含部分结果,而不包含完整结果
是否有任何方法可以检测到发生错误的情况?请注意,E175002错误的发生不是我的问题,而是它的检测问题。您需要向我们显示Jenkins/客户端收到的完整错误,并向我们显示您的SVN服务器日志中的内容。该问题只会随机发生-可能是连接问题。然而,问题是问题不是出现了,而是如何检测它,以及为什么svn返回值在本例中不为!=0,以便Jenkins可以检测到它