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

问题描述 投票:0回答:2

我正在尝试在远程 Mac mini 中运行 iOS 构建,该 Mac mini 作为代理连接到在 Linux 服务器上运行的 Jenkins master。我已经安装了所有依赖项并通过 .zshrc 设置了环境变量(zsh 是 catalina 及以上版本中的默认 shell)。

当我通过 Jenkins Freestyle 项目中的

Execute Shell
选项运行脚本(npm install、pod install 等)时,它会抛出
npm command not found
/
pod command not found
。即使我在脚本开始时使用
/bin/zsh
,它也不起作用。

有没有办法将 shell 切换到 zsh/bash 或者在 jenkins 构建过程中将所有配置导入到 sh 中?

ios bash jenkins cocoapods zsh
2个回答
2
投票

Jenkins 在连接到从站(通过 ssh)并加载 env 变量时利用“rc”文件(这也意味着当您更改 rc 文件中的任何内容时,您需要断开并重新连接从站以加载更改)。现在它取决于用于连接从站的用户的默认 SHELL 设置。您需要检查这一点并在正确的 rc 文件中相应地对齐 env 变量。

在目前的情况下,如果你不想改变任何事情你也可以做

source ~/.zshrc

在脚本的开头。这将加载该文件中定义的环境变量

另一种方法是在节点配置中的“节点属性”下设置节点的环境变量。


0
投票

我已经在 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。

© www.soinside.com 2019 - 2024. All rights reserved.