Jenkins 运行 fastlane 脚本时未安装 Yarn
Posted
技术标签:
【中文标题】Jenkins 运行 fastlane 脚本时未安装 Yarn【英文标题】:Yarn is not installed when Jenkins runs fastlane script 【发布时间】:2019-09-18 18:09:27 【问题描述】:我有 react-native 移动项目,我为 ios 和 android 创建了 fastlane 脚本来构建和推送应用程序。如果我从终端手动运行脚本,它们可以正常工作。
但是现在,我想从 Jenkins 运行它们。我在mac系统上工作。我为我的主文件夹授予了 Jenkins R/W 权限,因此它能够在已设置的项目中构建应用程序。此外,我还更改了 Jenkins 的工作区,用于放置移动项目。
对于 fastlane,我已经安装了 yarn 插件。而现在的问题是,当 Jenkins 运行 fastlane 脚本时,似乎没有安装 yarn。这是一个例外:
Shell command exited with exit status 127 instead of 0.
据我所知,它表明没有安装 yarn,但事实并非如此,因为手动启动的脚本可以正常工作。
那么,为什么会这样?我应该改变什么?请帮帮我。
【问题讨论】:
【参考方案1】:Jenkins 不太可能以与您的手动运行相同的用户身份运行。
当你说你安装了 yarn 插件时,那是哪个插件?我不知道有一个。你的意思是nodejs plugin?
我总是在管道中这样做以安装纱线:
stage('Prepare')
sh "npm install -g yarn"
【讨论】:
是fastlane-yarn插件【参考方案2】:@thekbb 是对的。所以,我做了什么:
根据这个article ,我向Jenkins添加了nodeJS插件,配置它,在Jenkins中创建了一个管道并添加了这段代码
sh "npm install -g yarn"
sh "yarn install"
【讨论】:
以上是关于Jenkins 运行 fastlane 脚本时未安装 Yarn的主要内容,如果未能解决你的问题,请参考以下文章
Fastlane Scan 的构建过程错过了 Jenkins CI 上的 CocoaPod 框架