Jenkins 运行 fastlane 脚本时未安装 Yarn

Posted

技术标签:

【中文标题】Jenkins 运行 fastlane 脚本时未安装 Yarn【英文标题】:Yarn is not installed when Jenkins runs fastlane script 【发布时间】:2019-09-18 18:09:27 【问题描述】:

我有 react-native 移动项目,我为 iosandroid 创建了 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 框架

Fastlane iOS 测试在本地通过,但不是来自 Jenkins

Jenkins+Fastlane+蒲公英+钉钉

Jenkins+Fastlane+蒲公英+钉钉

Jenkins+Fastlane+蒲公英+钉钉

Jenkins+Fastlane+蒲公英+钉钉