Я пытаюсь реализовать рабочий процесс CI / CD для своего проекта Android с помощью Github Actions и Fastlane. Я создал рабочий процесс для сборки и APK-файла и загрузил его в Firebase App Distribution. Мой рабочий процесс запускается и выполняется успешно, когда я нажимаю на свою ветку разработки и загружаю файл APK в Firebase App Distribution, как ожидалось.
Но тот же рабочий процесс не удался в основной ветке (без каких-либо изменений кода) с ошибкой: bundler: команда не найдена: 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
Вот мой .yml-файл для GitHub Action:
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/[email protected]
- 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:[email protected] gitUserName:user_name