如何解决带有 Fastlane 和 GitHub 操作的 Android CI/CD:在主分支中找不到“fastlane”命令
我正在尝试使用 Github Actions 和 Fastlane 为我的 Android 项目实施 CI/CD 工作流程。我创建了一个工作流来构建 APK 文件并将其上传到 Firebase App Distribution。当我推送到我的开发分支并按预期将 APK 文件上传到 Firebase App Distribution 时,我的工作流程被触发并成功。
但相同的工作流在 master 分支上失败(没有任何代码更改)并出现错误:“bundler: command not found: fastlane”
当我在本地设备上调用相同的 fastlane 操作时,它会工作并将 APK 上传到 Firebase App Distribution。
这是我的车道:
lane :beta do |options|
version = options[:versionChange]
runUnitTests = options[:runUnitTests]
gitUserMail = options[:gitUserMail]
gitUserName = options[:gitUserName]
# 1- Make version code and name incrementation
if version.nil? || version == 'patch'
gradle(task: "doPatchVersionIncrement")
end
if version == 'major'
gradle(task: "doMajorVersionIncrement")
end
if version == 'minor'
gradle(task: "doMinorVersionIncrement")
end
gradle(task: "doBuildNumberIncrement")
gradle(task: "doBuildNumberBetaIncrementValueIncrement")
# 2- Run unit tests for all variants
if runUnitTests.nil? && runUnitTests != 'false'
gradle(task: "clean")
gradle(task: "test")
end
# 3- Build Release APK
gradle(task: "clean")
gradle(task: 'assemble',build_type: 'Release')
# 4- push version bump commit
properties = property_file_read(file: "app/version.properties")
versionMajor = properties['VERSION_NAME_MAJOR']
versionMinor = properties['VERSION_NAME_MINOR']
versionPatch = properties['VERSION_NAME_PATCH']
versionCode = properties['VERSION_CODE']
versionName = "#{versionMajor}.#{versionMinor}.#{versionPatch}"
if !gitUserMail.nil? && !gitUserMail.empty? && !gitUserName.nil? && !gitUserName.empty?
sh "git config --global user.email #{gitUserMail}; git config --global user.name #{gitUserName}"
end
sh "git add .. ; git commit -m 'Version bump : versionCode = #{versionCode} | versionName = #{versionName}'"
push_to_git_remote
# 5- Send APK to Firebase
firebase_app_distribution(app: "MY_FIREBASE_APP_ID",groups: "qa-team")
end
这是我用于 GitHub Action 的 .yml 文件:
name: Deploy Release APK to Firebase App Distribution
on:
push:
branches:
- "**"
pull_request:
branches:
- master
workflow_dispatch:
jobs:
upload_firebase_app_distribution:
name: Upload to Release Apk to Firebase App Distribution
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2.3.3
- uses: ruby/setup-ruby@v1
with:
ruby-version: '2.6'
bundler-cache: true
- name: Distribute app with ? App Distribution ?
run: bundle exec fastlane beta version:patch runUnitTests:false gitUserMail:user@company.com gitUserName:user_name
解决方法
- 更新了 Ruby 版本
- 在 Ruby 之后安装 Fastlane
- 在“fastlane”命令之后添加了“android”命令
那么问题就解决了。这是固定的工作流程:
name: Deploy Release APK to Firebase App Distribution
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
jobs:
deploy_to_beta:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7.2'
- name: Setup Fastlane
run: bundle install
- name: Deploy to Firebase
run: bundle exec fastlane android beta version:patch runUnitTests:false gitUserMail:user@company.com gitUserName:user_name
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。