Jenkins遇到的一些坑

问题1

报错:cannot load such file -- xxxxxxx (LoadError)

:/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- xcodeproj (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Volumes/External1/JenkinsWorkspace1/ProjectDM_iOS_United/packtool/iOS/HLPack/rubyController.rb:2:in `
' $ /bin/sh -xe /var/folders/zq/xp2y1wy90zx3_w0trmd1ygq80000gn/T/jenkins4861812057858002797.sh

原因:Jenkins远程ssh连接子节点访问ruby无法require第三方库

Jenkins远程ssh连接操作为非交互式shell(non-interactive)与非登陆式shell(non-login),这种方式在连接的时候不会执行权限文件 导致获取不到第三方库的路径

上方报错中 $ /bin/sh -xe/var/folders/zq/xp2y1wy90zx3_w0trmd1ygq80000gn/T/jenkins4861812057858002797.sh这段就是属于non-login+ non-interactive的方式

解决方案:

再Jenkins构建顶部加上#!/bin/bash –ilex

-i参数 和 -l参数让bash成为login shell and interactive shell,就可以读取/etc/profile~/.bash_profile等文件,e参数表示一旦出错,就退出当前的shell,x参数表示可以显示所执行的每一条命令

同理:其他通过jenkins远程操作shell等无法访问第三方库可参考以上解决办法

 

问题2

Jenkins拷贝文件到ftp目录

报错如下:

cp: 目标"/DMBuildTarget/versions/test/" 不是目录

原因:

无权限访问

解决方案:

连接ftp上传

ftp -n -v 192.168.xx.xxx <

 

你可能感兴趣的:(Jenkins)