詹金斯奴隶无法找到svn

cdo*_*dog 1 svn jenkins

我有一个工作失败的奴隶,在主人身上建立好.SVN安装在主站上与从站相同的位置/usr/local/bin/svn.我在奴隶上有一个Jenkins用户,它可以运行svn --version正常.

[INFO] Executing: /bin/sh -c cd /var/jenkins/workspace/projecta && svn --non-interactive update /var/jenkins/workspace/projecta

[ERROR] Provider message:
[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] /bin/sh: svn: not found
Run Code Online (Sandbox Code Playgroud)

我正在使用Subversion插件,这在slave上工作正常,并在作业开始时运行.问题似乎是某些模块使用maven内部版本号插件.

正如您在上面的日志中所看到的,这是运行一个脚本,该脚本似乎作为从属服务器上的Jenkins用户运行,并在主机上获取客户端,该客户端是不同的版本.

因此,我认为它是使用Subversion插件版本检出代码,然后尝试在主机的PATH上使用旧版本更新日期.这一切都在master上工作正常,因为它只有一个版本的svn.

Sag*_*gar 7

注意:Jenkins Shell运行为/ bin/sh,而不是bash,所以很多你期望在bash中可用的路径实际上并不存在.即使您svn --version成功运行jenkins用户,也可能使用bash(因此它已将某些正常路径加载到PATH变量中).

选项1

将以下内容添加到"Execute Shell"或shell脚本中:

PATH = $ PATH:在/ usr/local/bin目录

应该让它找到颠覆.但是,您必须为每项工作执行此操作.

方案2 - 更好的选择

另一个选项是在从属配置页面上添加以下内容:

配置

环境变量

name = PATH value = $ PATH:/ usr/local/bin

这应该为您在此从站上运行的每个构建自动设置它.你可以在这里看到其他路径.

再次注意,当您在从属页面上显示"系统信息"时,这将不会显示(它显示默认的系统信息).但是,它会为每个构建添加