ios 无法在Jenkins Execute Shell中使用zsh/bash

ruoxqz4g  于 12个月前  发布在  iOS
关注(0)|答案(2)|浏览(117)

我试图在远程Mac mini中运行iOS构建,该Mac mini作为代理连接到运行在Linux服务器上的Jenkins master。我已经安装了所有的依赖项,并通过.zshrc设置了env变量(zsh是 Catalina 和更高版本中的默认shell)。
当我在Jenkins Freestyle项目中通过Execute Shell选项运行脚本(npm install,pod install等)时,它会抛出npm command not found/pod command not found。甚至当我在脚本开始时使用/bin/zsh时,它也不起作用。
在jenkins构建过程中,有没有办法将shell切换到zsh/bash或者将所有配置导入sh?

gkn4icbw

gkn4icbw1#

Jenkins在连接到slave(通过ssh)并加载env变量时会利用'rc'文件(这也意味着当您要更改rc文件中的任何内容时,您需要断开并重新连接slave以加载更改)。现在,它取决于您用来连接从机的User的默认SHELL设置。你需要检查并在正确的rc文件中相应地对齐env变量。
在目前的情况下,如果你不想改变什么,你也可以做一个

source ~/.zshrc

在你剧本的开头。这将加载该文件中定义的env变量
另一种方法是在节点配置中的“节点属性”下为节点设置env变量。

ffscu2ro

ffscu2ro2#

我已经成功在zsh shell中运行脚本。这是我的解决方案,

sh('''#!/bin/zsh -l
source ${HOME}/.zshrc
pod install
''')

sh script: '''#!/bin/zsh -l
source ${HOME}/.zshrc
pod install
''', label: 'pod install'

你可以根据需要改变为bash。

相关问题